我想排除目录“dir3_txt”,以便我只能files('.txt')从其他目录中捕获。我试图排除如下所示的目录,但无法弄清楚如何将所有具有 .txt 的文件作为 ext 其他文件,以便在dir3_txt下面使用它:for root, dirs, files in os.walk('.'): print (root) dirs[:] = [d for d in dirs if not d.startswith('dir3')] for file in files: print (os.path.join(root, file))我正在考虑 glob(从堆栈本身获得),但不确定如何调整 glob 以使用它。for file in os.walk('.'): for txt in glob(os.path.join(files[0], '*.txt')): print(txt)我经历了os.walk中的排除目录,但是提供的解决方案对我没有帮助,它仅说明跳过目录也无济于事,因为我需要从其他目录中获取文件,如果仅使用glob可以做到这一点更好?
2 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
一个简单的解决方案就是对由os.walk以下方法返回的目录路径和文件进行字符串比较:
for root, dirs, files in os.walk('.'):
if "/dir3_txt/" not in root:
for file in files:
if file.endswith(".txt"):
print (os.path.join(root, file))
慕田峪7331174
TA贡献1828条经验 获得超13个赞
for root, dirs, files in os.walk('.'):
print (root)
dirs[:]= [d for d in dirs if d[:4]!='dir3']
for file in files:
if file[-4:]=='.txt':
print (os.path.join(root, file))
我现在没有任何系统可以测试这一点,因此,如果有任何问题,请发表评论。
编辑:
现在,它仅检测“ .txt”文件。
添加回答
举报
0/150
提交
取消