Python中的反斜杠始终存在
我刚开始学习Python,想用下面的代码打开一个文件:
phys = "C:\\parsework\\glckpysdata.txt"
print phys
d = open(phys)
当我运行这个代码时,我得到了:
C:\parsework\glckpysdata.txt
Traceback (most recent call last):
File "C:\py\boxtest2.py", line 28, in <module>
d = open(phys)
IOError: [Errno 2] No such file or directory: 'C:\\parsework\\glckpysdata.txt'
我感觉我已经尝试了所有的方法(比如用r"C:\parsework\glckpysdata.txt"这种方式,或者在open命令里直接输入双引号、单引号、反斜杠等等……)但是没有任何方法能阻止它读取路径时出现双反斜杠的问题。
最让我沮丧的是,我在同一个脚本里有完全一样的写法,那里却能正常工作:
thisguy = "C:\\parsework\\glckout\\"
thisguy += nam
g = open(thisguy)
在同一个脚本里,运行得很好。有人能告诉我这是怎么回事吗?
2 个回答
2
以下两种写法都是正确的:
phys = "C:\\parsework\\glckpysdata.txt"
或者
phys = r"C:\parsework\glckpysdata.txt"
这个错误提示的意思是文件不存在,或者你没有权限去访问它。请仔细检查一下路径和文件名(我猜,可能是你在 glckpysdata.txt
中漏掉了一个 h
?)
错误信息中的双反斜杠只是用来显示嵌入的反斜杠;每个 \\
实际上对应字符串中的一个单反斜杠。
7
你的问题并不是路径中的双反斜杠——这只是错误信息中字符串显示的一个表现形式。实际上,字符串里并没有双反斜杠。
你的问题很简单,就是 C:\parsework\glckpysdata.txt
这个文件不存在,就像错误信息所说的那样。
顺便说一下,为了避免这种问题,路径中可以直接使用正斜杠:
phys = "C:/parsework/glckpysdata.txt"