使用 glob 获取文件名

Get filenames using glob

我正在使用 panda 读取几个 tsd 文件并将它们组合成一个大框架。我正在使用 glob 遍历我的目录和子目录中的所有文件。每一帧都有一个唯一的键。现在我想创建一个引用 table,其中存储每个键的文件名。但是由于我不太了解 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)))

只需使用 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)))

让我们以 Python 方式使用 Path

from pathlib import Path

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

p.glob('**/*.ext') returns 一个生成器对象,它需要被迭代以得到它的值,这是用 [i for i in ..]

完成的

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