【发布时间】:2020-09-30 14:40:34
【问题描述】:
我正在使用 os.walk 运行目录“foo”。我想处理 .dat 文件,但是如何检查目录名称并只处理特定目录?
如果 dir="bar" 则处理 files.dat。不要处理“notbar”。我可能错过了一些简单的东西
C:\data\foo
- notbar
-123
-file1.dat
-456
-file2.dat
-file3.dat
- bar
-123
-file1.dat
-456
-file2.dat
-file3.dat
这会找到所有 .dat 文件....
for (root, dirnames, filenames) in os.walk(base_path):
print('Found directory: {0}'.format(root))
for filename in filenames:
if filename.endswith(".dat"):
print(filename)
【问题讨论】:
-
os.walk(fbase_path + '/bar')? -
要添加到@juanpa.arrivillaga,使用
os.walk(os.path.join(base_path, "bar"))以兼容多个操作系统(windows 使用 \ 和 unix /,这不是我们的问题) -
这不是真正的选择,这是一个简化的例子。用户将指定一个根目录,而不是已知文件夹名称的路径。
-
@Seraf 我个人会推荐更好的
pathlib而不是os.path,所以它只是Path(base_path) / 'bar' -
嗯,那你可以先找到
bar,然后从bar再走一遍