当文件名具有不同长度的数字时如何使用 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)

因为数字只出现在文件名中的一处。