在Iron Python中执行chdir命令时,出现了“路径中的非法字符”错误。这是在我的代码运行时发生的,但即使在Iron Python控制台中也有这个问题。我使用nt模块是因为在代码中os模块不工作(似乎是一个已知的问题)。
稍微玩弄一下,发现“非法字符”其实就是bin这个词。下面是控制台中的文本,它显示我只有在导航到bin目录时才会收到错误。
下面是一个例子
>>> nt.chdir('c:\Users\xxxxx\Documents\Visual Studio 2010\Projects\xxx')
>>> nt.chdir('c:\Users\xxxxx\Documents\Visual Studio 2010\Projects\xxx\Directory')
>>> nt.chdir('c:\Users\xxxxx\Documents\Visual Studio 2010\Projects\xxx\Directory\bin')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Illegal characters in path.
更糟糕的是,我将导航到一个完全不同的目录(甚至没有bin目录),并尝试导航到一个子目录“bin”,我仍然会得到这个错误!
有什么想法吗?
Windows和大多数其他操作系统将识别正斜杠。所以,不用反斜杠、双反斜杠或r'(更多关于字符串文本here)只需使用正斜杠,就可以了。答案here也很详细。
更新:PS:小心使用反斜杠和字符串文字。一定要检查你的具体情况。在这篇answer中对此有很好的评论
\
是Python字符串中的转义字符。\b
是backspace,这就是它出现在\bin
上的原因:您没有指定目录Directory\bin
,而是指定目录Directory<backspace>in
,这不是合法路径,即使它是,也不存在。您可以按照Martijn的建议,通过将反斜杠加倍或使用
r
指示器来编写字符串。第三种选择是像在其他文明操作系统中一样简单地使用正斜杠。Windows非常乐意使用这些。路径分隔符也是python转义符。将它们加倍,或者更好的方法是,改用
r''
原始python文本:例如,
\n
是换行符,而\t
被解释为制表符。在您的特定情况下,\b
被解释为退格。相关问题 更多 >
编程相关推荐