os.walk input() 与硬编码路径的工作方式不同

os.walk working differently with input() vs hard-coded path

import os

path = input()
for root, dirs, files in os.walk(path, topdown=True):
    print (files)

如果我作为输入提供 -> c:\data

但不是如果:

import os

# hard-coded will only work if I use / instead of \
for root, dirs, files in os.walk('c:\data', topdown=True):
    print (files)

有人可以向我解释这种行为的原因吗?谢谢。

因为在文字字符串中,\ 是一个转义字符 - 允许在文字字符串中放置 quotes/tabs/newlines 等。

您应该使用 'c:\data''c:/data'(正斜杠在 windows 中工作正常)

另一种方法是使用 "raw" 字符串 r'c:\data' 但要小心,因为你不能再使用任何转义字符了