使用glob获取文件名

时间:2017-05-27 09:45:54

标签: python filenames glob

我正在使用panda阅读几个tsd文件并将它们组合成一个大框架。我使用glob来遍历我的目录和子目录中的所有文件。每一帧都有一个唯一的密钥。现在我想创建一个参考表,其中存储了每个键的文件名。但由于我不太了解glob,我不知道如何只获取文件的名称。

p = Path('myPath')
data = []
reference_table = {}
number_of_files = 0

for tsd_files in p.glob('**/*.tsd'):
        data.append(pd.read_csv(str(tsd_files), delim_whitespace=True, header=None))
        number_of_files = number_of_files + 1

whole_data = pd.concat(data, keys= list(range(number_of_files)))

2 个答案:

答案 0 :(得分:3)

只需使用os.path.basename()从路径中获取文件名。

p = Path('myPath')
data = []
reference_table = {}
number_of_files = 0
file_names = []

for tsd_files in p.glob('**/*.tsd'):
    data.append(pd.read_csv(str(tsd_files), delim_whitespace=True, header=None))
    number_of_files = number_of_files + 1
    file_names.append(os.path.basename(tsd_files))

whole_data = pd.concat(data, keys= list(range(number_of_files)))

答案 1 :(得分:1)

让我们以 Pythonic 的方式使用 Path

from pathlib import Path

p = Path('dir')
filenames = [i.stem for i in p.glob('**/*.ext')]

p.glob('**/*.ext') 返回一个生成器对象,需要对其进行迭代以将其值取出,这是通过 [i for i in ..] 完成的

i.stem 表示带扩展名的文件名。