2010-06-24 145 views
0

如何将字母添加到路径?变量路径

例如,如果我有一个像'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:\例题\媒体\上传\ test5.txt吗'),它不能正常工作。并给我错误(你可以看到顶部)

回答

5

从错误消息中可以明显看出,字符串以正确的格式存储(反斜杠通过加倍转义)。所以看起来路径错了,文件确实不存在。

另一方面,在编辑中添加的第二个示例中,使用open('c:\example2\media\uploads\test5.txt') - 这肯定会失败,因为\t是一个制表符(而所有其他反斜杠字母组合都不存在,所以反斜杠将被视为正确转义)。但是你说这个字符串存储在一个变量中,所以我没有看到这个例子在这里有什么帮助。

考虑以下几点:

>>> path = 'c:\example2\media\uploads\test5.txt' 
>>> path 
'c:\\example2\\media\\uploads\test5.txt' 

看到了吗?所有的反斜杠都被转换为,除了之外的\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等),所以这不是一个真正的可行之路,尤其是因为你周围的症状,而不是篡改解决根本问题。

+0

你真的是问题出在路上。我犯了错。非常感谢所有人。 – Pol 2010-06-24 19:56:54

1

它是上传或上传?你的问题说的是那个,但你的错误说另一个。开头的'u'表示该字符串是unicode格式,这不应该有任何影响。 '\\'字符是蟒蛇逃脱'\'字符所必需的。

0

字母'r'仅用于Python解释器。它表明,解析器在解析字符串时不应该转义任何序列。如果字符串已存储在变量中,则与'r'字母无关。

我想问题是,有没有这样的文件。尝试复制这条线,你得到的异常(我的意思是从该行的路径),并将其粘贴到Windows运行对话框(Win + R会显示它)。然后点击“输入”。

如果出现错误,请检查路径。在你的问题中你有uploaduploads,请确保你的代码中使用了正确的。