在摆弄尝试自动化某个过程的同时,我遇到了Python的这种看似非常奇怪的行为os.walk():当我将它传递给某个目录时,它只是没有做任何事情.但是,当我传递父目录时,它在直接传递似乎不起作用的路径中正确递归.
例如:
for root, _, _ in os.walk('F:\music'):
print(root)
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
F:\ music
[...]
F:\ music\test
F:\ music\test\broken
F:\ music\test\broken\Boards_Of_Canada
F:\ music\test\broken\Brian_Eno
[...]
但是,当我尝试使用F:\ music\test(os.walk()在其父级调用时被正常递归),如下所示:
for root, _, _ in os.walk('F:\music\test'):
print(root)
Run Code Online (Sandbox Code Playgroud)
我根本没有得到任何输出.
有人知道发生了什么事吗?难道我做错了什么?这是一些奇怪的限制os.walk()吗?我真的很困惑.
bgp*_*ter 20
你的问题在这里:
for root, _, _ in os.walk('F:\music\test'):
print(root)
Run Code Online (Sandbox Code Playgroud)
...当Python解析包含您的路径的字符串时,它会将其解释\t为Tab字符.您可以将路径字符串文字重写'f:\\music\\test'为r'F:\music\test'(或原始字符串,因为这个原因而存在.)
| 归档时间: |
|
| 查看次数: |
8381 次 |
| 最近记录: |