假设我有这样一个目录树:
a/
├── b
│ ├── d.png
│ └── e
│ └── f.png
└── c.png
我想要的输出是:
如果要在a/b/
中搜索文件:
b/d.png
&;b/e/f.png
在a/
的情况下:a/c.png
a/b/d.png
a/b/e/f.png
我知道如何使用os.步行我找了很多类似的情况,但没有找到。你知道吗
以下是我的最新尝试:
path = "a/b"
pathBase = os.path.basename(path)
for p, dirs, files in os.walk(path):
for file in files:
print(os.path.join(p.replace(path, pathBase),file))
虽然这在a/b/
中可以正常工作,但在a/
中不起作用。你知道吗
a
的输出为:c.png
b/d.png
b/e/f.png
,这与预期不符。你知道吗
如果从
path
中去掉尾随斜杠,代码将(几乎)正确,但是在任何情况下都应该使用os.path.relpath
来计算相对文件路径:值得一提的是,
pathlib
使路径操作更容易:相关问题 更多 >
编程相关推荐