我经常在python代码中看到这样的语法。
import os
os.chdir(r'C:\Users\test\Desktop')
我想知道为什么我需要在路径前给r,我相信它与路径中的'\'有关,有没有其他方法可以给路径而不是使用r''
答案 0 :(得分:1)
'r'使Python将其解析为“原始”字符串,而不进行转义
如果你不想在字符串文字之前使用'r',但是用单斜杠指定路径,你可以使用这种表示法:
"C:/Users/test/Desktop"
与unix-pased系统一样。 Windows在文件路径中理解“\”和“/”,因此,使用“/”可以避免在路径字符串之前删除“r”字母。
另外,如上所述,您可以使用双斜线指定路径,但是,正如我意识到的那样,这不是您想要的:
"C:\\Users\\test\\Desktop"
答案 1 :(得分:0)
确保反斜杠不会转义字符。它与
相同os.chdir('C:\\Users\\test\\Desktop')
答案 2 :(得分:0)
仅当它具有转义序列时
print('C:\sys\cat\Desktop')
更好将其设为原始类型以避免毛刺或使用正斜杠。
答案 3 :(得分:0)
您也可以在Windows中使用正斜杠,因此您不需要原始字符串文字:
>>> import os
>>> os.stat(r'C:\Users\f3k\Desktop\excel.vbs')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=555L, st_atime=1367585162L, st_mtime=1367586148L, st_ctime=1367585162L)
使用正斜杠相同:
>>> os.stat('C:/Users/f3k/Desktop/excel.vbs')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=555L, st_atime=1367585162L, st_mtime=1367586148L, st_ctime=1367585162L)
但请注意使用os.path.join():
>>> os.path.join('C:/Users/f3k/Desktop', 'excel.vbs')
'C:/Users/f3k/Desktop\\excel.vbs'