如何在路径中添加字母?
例如,如果我有一个像'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'
当我打开它('c:\ example2 \ media \ uploads \ test5.txt')时它不起作用。并给我错误(你可以在顶部看到)
答案 0 :(得分:5)
从错误消息中可以清楚地看到字符串以正确的格式存储(反斜杠通过加倍来转义)。所以似乎路径错了,文件确实不存在。
另一方面,在您在编辑中添加的第二个示例中,使用open('c:\example2\media\uploads\test5.txt')
- 这肯定会失败,因为\t
是制表符(而所有其他反斜杠字母组合)不存在,所以反斜杠将被视为正确转义)。但是你说字符串存储在一个变量中,所以我不知道这个例子在这里有什么帮助。
请考虑以下事项:
>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\test5.txt'
请参阅?所有反斜杠都转换为{em>除之外的\t
反斜杠,因为这是唯一具有特殊含义的反斜杠。当然,现在,这条道路是错误的。因此,如果您所指的变量已经以这种方式定义(现在包含无效路径),那么除了修复源代码之外,您无能为力:
>>> path = r'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\\test5.txt'
您可能认为以后可以“修复”有缺陷的路径:
>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path.replace("\t","\\t")
'c:\\example2\\media\\uploads\\test5.txt'
...但是还有许多其他转义码(\b
,\r
,\n
等等),所以这不是一个真正可行的方法,特别是因为你要去医生围绕症状,而不是解决潜在的问题。
答案 1 :(得分:1)
上传或上传好吗?你的问题是一个,但你的错误说另一个。开头的'u'表示字符串是unicode格式,这不应该有任何影响。 “\\
”字符是python转义“\
”字符所必需的。
答案 2 :(得分:0)
字母'r'仅适用于Python解释器。它表明,在解析字符串时,解释器不应该转义任何序列。如果字符串已存储在变量中,则与“r”字母无关。
我想问题是实际上没有这样的文件。尝试复制你在异常中获得的这一行(我的意思是该行的路径)并将其粘贴到Windows运行对话框中(Win + r将显示它)。然后点击“输入”。
如果收到错误,请检查路径。您的问题中同时包含upload
和uploads
,请确保在代码中使用正确的。{/ p>