变量中的路径

时间:2010-06-24 19:04:21

标签: 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'

当我打开它('c:\ example2 \ media \ uploads \ test5.txt')时它不起作用。并给我错误(你可以在顶部看到)

3 个答案:

答案 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将显示它)。然后点击“输入”。

如果收到错误,请检查路径。您的问题中同时包含uploaduploads,请确保在代码中使用正确的。{/ p>