Python读取\\ when\是输入

Python读取\\ when\是输入,python,string,append,Python,String,Append,我试图在一个空文件夹中创建一个新的文本文件。文件夹的路径为: C:\Users\Tor\Desktop\Python files\retning 当我在windows资源管理器的命令行中键入此命令时,我直接进入空文件夹 当我用Python键入代码时,会收到一条错误消息,看起来Python用'\\'替换了一些'\\' 这是我的密码 sector='A5' g=open('C:\Users\Tor\Desktop\Python files\retning\retning'+sector

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

C:\Users\Tor\Desktop\Python files\retning
当我在windows资源管理器的命令行中键入此命令时,我直接进入空文件夹

当我用Python键入代码时,会收到一条错误消息,看起来Python用
'\\'
替换了一些
'\\'

这是我的密码

   sector='A5'
   g=open('C:\Users\Tor\Desktop\Python files\retning\retning'+sector+'.txt', 'a')
这是错误信息

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'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Tor\Desktop\Python files\filer som behandler output\Vindretning.py”,第2行,在
g=open('C:\Users\Tor\Desktop\Python files\retning\retning'+sector+'.txt','a')
IOError:[Errno 22]无效模式('a')或文件名:“C:\\Users\\Tor\\Desktop\\Python files\retning\retningA5.txt”

有人能告诉我我做错了什么,或者这里发生了什么吗?

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

使用原始字符串可以解决这里的问题。大概

open(r'C:\Programming Test Folder\test_file.py')
因此,您的代码将更改为

g=open(r'C:\Users\Tor\Desktop\Python files\retning\retning{}.txt'.format(sector), 'a')
或者在Windows中使用
/
,如下所示

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

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

使用原始字符串可以解决这里的问题。大概

open(r'C:\Programming Test Folder\test_file.py')
因此,您的代码将更改为

g=open(r'C:\Users\Tor\Desktop\Python files\retning\retning{}.txt'.format(sector), 'a')
或者在Windows中使用
/
,如下所示

g=open('C:/Users/Tor/Desktop/Python files/retning/retning'+sector+'.txt', 'a')
这是正常的行为;Python为您提供了一个字符串表示,可以将其粘贴回Python脚本或解释器提示中。由于
\
是Python字符串文本中用于启动转义序列(例如
\n
\xa0
)的字符,因此反斜杠加倍

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

  • 通过在字符串文本中将反斜杠加倍来转义所有反斜杠:

    g = open('C:\\Users\\Tor\\Desktop\\Python files\\retning\\retning'+sector+'.txt', 'a')
    
    现在,
    \r
    不会被解释为转义码

  • 使用原始字符串文字:

    g = open(r'C:\Users\Tor\Desktop\Python files\retning\retning'+sector+'.txt', 'a')
    
    在原始字符串文本中,大多数转义码被忽略

  • 使用前斜杠:

    正斜杠在Windows上可以作为路径分隔符使用,并且不可能将其解释为转义字符

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

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

      • 通过在字符串文本中将反斜杠加倍来转义所有反斜杠:

        g = open('C:\\Users\\Tor\\Desktop\\Python files\\retning\\retning'+sector+'.txt', 'a')
        
        现在,
        \r
        不会被解释为转义码

      • 使用原始字符串文字:

        g = open(r'C:\Users\Tor\Desktop\Python files\retning\retning'+sector+'.txt', 'a')
        
        在原始字符串文本中,大多数转义码被忽略

      • 使用前斜杠:

        正斜杠在Windows上可以作为路径分隔符使用,并且不可能将其解释为转义字符


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


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

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

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