Python读取\\when\是inpu

2024-05-21 01:10:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在空文件夹中创建一个新的文本文件。文件夹的路径是:

C:\Users\Tor\Desktop\Python files\retning

当我在windows资源管理器的命令行中输入这个命令时,我会直接进入空文件夹。在

当我在Python中输入代码时,我得到一条错误消息,看起来Python已经用'\\'替换了两个'\'

这是我的密码

^{pr2}$

这是错误信息

Traceback (most recent call last):
  File "C:\Users\Tor\Desktop\Python files\filer som behandler output\Vindretning.py", line 2, in <module>
    g=open('C:\Users\Tor\Desktop\Python files\retning\retning'+sector+'.txt', 'a')
IOError: [Errno 22] invalid mode ('a') or filename: 'C:\\Users\\Tor\\Desktop\\Python files\retning\retningA5.txt'

谁能告诉我我做错了什么,或者这里发生了什么?在


Tags: 代码命令行命令路径txt文件夹windowsfiles
3条回答

在普通的python字符串中,反斜杠可以有特殊的含义(例如,\n表示新行)。在代码中提供的路径中,您需要对每个目录分隔符使用\\\\表示包含a),或者将字符串标记为原始字符串,这意味着对反斜杠的特殊处理不适用。您可以在引号前加一个r,比如r'Folder\Sub-Folder\Another'

错误消息基本上是python,它提供了可以用来获取原始字符串的python代码。在

这是正常的行为;Python为您提供了一个可以直接粘贴回Python脚本或解释器提示的字符串表示。由于\是Python字符串中用来启动转义序列的字符(例如\n或{}),因此反斜杠将加倍。在

实际上,这里的关键是不带转义反斜杠的字符;\r是回车的转义码。您需要使用以下选项之一来指定Windows路径:

  • 通过将反斜杠加倍来转义所有反斜杠:

    g = open('C:\\Users\\Tor\\Desktop\\Python files\\retning\\retning'+sector+'.txt', 'a')
    

    现在,\r不会被解释为转义码。

  • 使用原始字符串文本:

    ^{pr2}$

    在原始字符串文本中,大多数转义码被忽略。

  • 使用斜杠:

    g = open('C:/Users/Tor/Desktop/Python files/retning/retning'+sector+'.txt', 'a')
    

    在Windows上,正斜杠可以很好地用作路径分隔符,而且不可能被解释为转义字符。

\需要在字符串中转义。这就是为什么使用\\或原始字符串(r'test String'

使用原始字符串解决了这里的问题。有点像

open(r'C:\Programming Test Folder\test_file.py')

所以,你的代码被改成

^{pr2}$

或者在Windows中使用/,如下所示

g=open('C:/Users/Tor/Desktop/Python files/retning/retning'+sector+'.txt', 'a')

相关问题 更多 >