Python中的反斜杠始终存在

-1 投票
2 回答
2428 浏览
提问于 2025-04-17 12:46

我刚开始学习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"

撰写回答