Pol*_*Pol 0 python string variables
如何在路径中添加字母?
例如,如果我有一个路径'c:\example2\media\uploads\test5.txt'(存储在变量中),但我需要类似的东西r'c:\example2\media\uploads\test5.txt',我怎么能添加字母`r?
因为该函数open()不想打开第一个路径.当我尝试添加路径到功能时,open()它给我一个错误和这样的路径:u'c:\\example2\\media\\uploads\\test5.txt'并说该文件或目录不存在.我该怎么办?
错误看起来像:
[Error 3] The system cannot find the path specified: u'C:\\example2\\media\\upload\\ZipFile.zip'
Run Code Online (Sandbox Code Playgroud)
当我这样打开('c:\ example2\media\uploads\test5.txt')它不起作用.并给我错误(你可以在顶部看到)
从错误信息很清楚,字符串被存储在正确的格式(反斜线被加倍逸出).所以似乎路径是错误的,文件确实不存在.
另一方面,在你编辑中添加的第二个例子中,你使用open('c:\example2\media\uploads\test5.txt')- 这肯定会失败因为\t是一个制表符(而所有其他反斜杠字母组合都不存在,所以反斜杠将被视为它被正确地逃脱了).但是你说字符串存储在一个变量中,所以我不知道这个例子在这里有什么帮助.
考虑以下:
>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\test5.txt'
Run Code Online (Sandbox Code Playgroud)
看到?所有反斜杠都转换为转义反斜杠,除了那个反斜杠,\t因为这是唯一具有特殊含义的反斜杠.当然,现在,这条道路是错误的.因此,如果您所引用的变量已经以这种方式定义(现在包含无效路径),除了修复源代码之外,您无能为力:
>>> path = r'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\\test5.txt'
Run Code Online (Sandbox Code Playgroud)
您可能认为以后可以"修复"有缺陷的路径,如下所示:
>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path.replace("\t","\\t")
'c:\\example2\\media\\uploads\\test5.txt'
Run Code Online (Sandbox Code Playgroud)
......但也有许多其他的转义码(\b,\r,\n等),所以这不是一个真正的可行之路,尤其是因为你周围的症状被篡改,而不是固定的根本问题.