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'
但要小心,因为你不能再使用任何转义字符了
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'
但要小心,因为你不能再使用任何转义字符了