在摆弄尝试自动化某些过程时,我遇到了 Python os.walk() 的这种看似非常奇怪的行为:当我将某个目录传递给它时,它什么也不做。但是,当我传递父目录时,它在直接传递时似乎不起作用的路径中正确递归。

例如:

for root, _, _ in os.walk('F:\music'):
    print(root)

产生以下输出:



但是当我尝试使用 F:\music\test (当 os.walk() 在其父级上被调用时,它被很好地递归)如下:
for root, _, _ in os.walk('F:\music\test'):
    print(root)

我根本没有得到任何输出。

有人知道发生了什么吗?难道我做错了什么?这是 os.walk() 的一些奇怪限制吗?我真的很困惑。

最佳答案

你的问题在这里:

 for root, _, _ in os.walk('F:\music\test'):
     print(root)

...当 Python 解析包含您的路径的字符串时,它会将 \t 解释为 Tab 字符。您可以将路径字符串文字重写为 'f:\\music\\test'r'F:\music\test'(一个原始字符串,正是出于这个原因而存在的。)

关于python - os.walk 不会走路,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5233814/

10-13 09:38