我正在尝试按此顺序执行以下操作:
使用os.walk()
可以查看每个目录。
每个目录都有subfolders
,但是我只对第一个subfolder
感兴趣。因此目录如下:
/home/RawData/SubFolder1/SubFolder2
例如。我希望在RawData2中具有在SubFolder1级别停止的文件夹。
事实是,似乎
os.walk()
遍历了RawData
文件夹的全部,而且我不确定如何使其停止。以下是到目前为止的内容-我已经尝试了其他一些将变量dirs替换为root或文件的组合,但这似乎并不能满足我的需求。
import os
for root, dirs, files in os.walk("/home/RawData"):
os.chdir("/home/RawData2/")
make_path("/home/RawData2/"+str(dirs))
最佳答案
我建议您改用glob。
正如关于glob的帮助所述:
glob(pathname)
Return a list of paths matching a pathname pattern.
The pattern may contain simple shell-style wildcards a la
fnmatch. However, unlike fnmatch, filenames starting with a
dot are special cases that are not matched by '*' and '?'
patterns.
因此,您的模式是每个第一级目录,我认为应该是这样的:
/root_path/*/sub_folder1/sub_folder2
因此,您从根本开始,在第一级获得所有内容,然后寻找
sub_folder1/sub_folder2
。我认为这可行。放在一起:
from glob import glob
dirs = glob('/root_path/*/sub_folder1/sub_folder2')
# Then iterate for each path
for i in dirs:
print(i)
关于python - 使os.walk以非标准方式工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33189128/