gpt4 book ai didi

python - 将过程应用于多个子目录中的文件

转载 作者:行者123 更新时间:2023-12-01 06:32:00 28 4
gpt4 key购买 nike

我正在尝试将一个过程应用于数千个文件,但在许多子目录中。

我正在考虑首先使用 os.listdir() 列出所有子目录,然后查看每个子目录并应用我的过程。我的树状结构如下:

              subdir1 -> file, file, file, .....
subdir2 -> file, file, file, .....
Directory -> subdir3 -> file, file, file, .....
subdir4 -> file, file, file, .....
subdir5 -> file, file, file, .....

我可以使用 os.listdir() 访问子目录列表,但不能访问子目录中的文件,您知道如何继续吗?谢谢

编辑:当使用 MikeH 方法时,就我而言:

import os
from astropy.io import fits

ROOT_DIR='./'

for dirName, subdirList, fileList in os.walk(ROOT_DIR):
for fname in fileList:
hdul = fits.open(fname)

我收到错误:

FileNotFoundError: [Errno 2] No such file or directory: 'lte08600-2.00+0.5.Alpha=+0.50.PHOENIX-ACES-AGSS-COND-2011-HiRes.fits'

事实上,如果我尝试使用 print(os.path.abspath(fname) 检查文件的路径,我可以看到路径是错误的,它错过了/root 等子目录/dir/fnam 而不是 root/dir/subdir/fname这有什么问题吗?

编辑2:就是这样,我发现出了什么问题,我必须加入文件的路径,每次都写 os.path.join(dirName,fname) 而不是只是 fname 。谢谢!

最佳答案

这样的东西应该适合你:

import os
ROOT_DIR='./'

for dirName, subdirList, fileList in os.walk(ROOT_DIR):
for fname in fileList:
# fully qualified file name is ROOT_DIR/dirname/fname
performFunction(dirName, fname)

关于python - 将过程应用于多个子目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59860934/

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