当文件名具有不同长度的数字时如何使用 pathlib.glob() 遍历文件
How to iterate through files using pathlib.glob() when files names have digits of different length
My Directory
看起来像这样:
P1_SAMPLE.csv
P2_SAMPLE.csv
P3_SAMPLE.csv
P11_SAMPLE.csv
P12_SAMPLE.csv
P13_SAMPLE.csv
我的代码如下所示:
from pathlib import Path
file_path = r'C:\Users\HP\Desktop\My Directory'
for fle in Path(file_path).glob('P*_SAMPLE.csv'):
number = fle.name[1]
print(number)
这给出了输出:
1
2
3
1
1
1
如何使代码输出每个文件的实际完整数字,如下所示:
1
2
3
11
12
13
如果可能,我更愿意使用 fle.name[]
。非常感谢!
使用正则表达式:
import re
for fle in Path(file_path).glob('P*_SAMPLE.csv'):
m = re.search(r'P(\d+)_SAMPLE.csv', fle.name)
print(m.group(1))
您甚至可以将其简化为:
m = re.search(r'(\d+)', fle.name)
因为数字只出现在文件名中的一处。
My Directory
看起来像这样:
P1_SAMPLE.csv
P2_SAMPLE.csv
P3_SAMPLE.csv
P11_SAMPLE.csv
P12_SAMPLE.csv
P13_SAMPLE.csv
我的代码如下所示:
from pathlib import Path
file_path = r'C:\Users\HP\Desktop\My Directory'
for fle in Path(file_path).glob('P*_SAMPLE.csv'):
number = fle.name[1]
print(number)
这给出了输出:
1
2
3
1
1
1
如何使代码输出每个文件的实际完整数字,如下所示:
1
2
3
11
12
13
如果可能,我更愿意使用 fle.name[]
。非常感谢!
使用正则表达式:
import re
for fle in Path(file_path).glob('P*_SAMPLE.csv'):
m = re.search(r'P(\d+)_SAMPLE.csv', fle.name)
print(m.group(1))
您甚至可以将其简化为:
m = re.search(r'(\d+)', fle.name)
因为数字只出现在文件名中的一处。