gpt4 book ai didi

python - 使用 glob python 读取具有特定扩展名的目录中的所有文件

转载 作者:行者123 更新时间:2023-12-03 09:00:41 27 4
gpt4 key购买 nike

我有一个目录,其中包含更多子目录,每个子目录都有具有特定扩展名的文件。我可以使用 glob 函数获取所有文件的名称:

for name in glob.glob('*/*[a-b]*'):
print(os.path.basename(name))

打印我在所有子目录中的文件名:

PF44_aa
PF52_aa
PF95_aa
PF38_aa
PF45_aa
PF63_aa
PF68_aa
PF39_aa

但是,如果我将这些文件名作为参数传递以打开文件并读取内容:

for name in glob.glob('*/*[a-b]*'):
filename=os.path.basename(name)
with open('%s' %filename) as fn:
content = fn.readlines()

我收到以下错误:

 File "<ipython-input-194-147f38fc2684>", line 1, in <module>
with open('%s' %filename) as fn:

FileNotFoundError: [Errno 2] No such file or directory: 'PF44_aa'

我还尝试直接将文件名作为输入而不是 %s:

for name in glob.glob('*/*[a-b]*'):
filename=os.path.basename(name)
with open(filename) as fn:
content = fn.readlines()

但仍然遇到同样的错误:

File "<ipython-input-193-fb125b5aa813>", line 1, in <module>
with open(filename) as fn:

FileNotFoundError: [Errno 2] No such file or directory: 'PF44_aa'

我做错了什么以及如何解决这个问题?

最佳答案

您必须使用文件的完整路径来打开它,不能仅使用文件名,除非它与您的 python 文件位于同一目录中。因此,您只需对脚本进行少量更改即可使其正常工作。

for name in glob.glob('*/*[a-b]*'):
with open(name) as fn:
content = fn.readlines()

文件名被名称替换。
此处,“名称”是文件的完整路径。

关于python - 使用 glob python 读取具有特定扩展名的目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50683675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com