在摆弄尝试自动化某些过程时,我遇到了 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/