os.walk使用input()和硬编码路径进行不同的工作

时间:2018-02-28 00:42:09

标签: python path os.walk

import os

path = input()
for root, dirs, files in os.walk(path, topdown=True):
    print (files)
如果我提供输入,

有效 - > C:\数据

但不是:

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)

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

1 个答案:

答案 0 :(得分:1)

因为在文字字符串中,\是一个转义字符 - 允许在文字字符串中加上引号/制表符/换行符等。

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

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