【问题标题】:IOError: [Errno 22] invalid mode ('r') or filename: 'c:\\Python27\test.txt' [duplicate]IOError:[Errno 22] 无效模式 ('r') 或文件名:'c:\\Python27\test.txt' [重复]
【发布时间】:2013-03-24 11:57:46
【问题描述】:

以下有什么问题:

test_file=open('c:\\Python27\test.txt','r')

【问题讨论】:

  • 您的问题在一个地方加倍了反斜杠,但在第二个地方没有加倍。您的代码使用单个反斜杠。你能把文件名变成一个原始字符串吗?

标签: python file-io


【解决方案1】:

\t 是一个制表符。改用原始字符串:

test_file=open(r'c:\Python27\test.txt','r')

或双斜线:

test_file=open('c:\\Python27\\test.txt','r')

或使用正斜杠:

test_file=open('c:/Python27/test.txt','r')

【讨论】:

  • 如果我想访问外部文件怎么办?像下面这样?这也给出了相同的错误消息。 fileResp = open('google.co.in/images/branding/googlelogo/1x/…', 'rb')
  • @KrishnaGupta: open() 只能访问文件,不能访问 URL。
【解决方案2】:

当您想避免转义时,始终使用 'r' 来获取原始字符串。

test_file=open(r'c:\Python27\test.txt','r')

【讨论】:

  • 有没有办法将原始修饰符添加到字符串中?
  • 是的,我不敢相信没有人回答这个明显的问题
【解决方案3】:

\ 是 Python 中的转义字符。 \t 被解释为选项卡。如果您需要在字符串中使用\ 字符,则必须使用\\

您的代码应该是:
test_file=open('c:\\Python27\\test.txt','r')

【讨论】:

    【解决方案4】:

    \t 在字符串中标记制表符的转义序列。对于文字 \,请使用 \\

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 2016-10-24
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      相关资源
      最近更新 更多