【问题标题】:IOError when writing to file in Python在 Python 中写入文件时出现 IOError
【发布时间】:2012-12-24 00:30:12
【问题描述】:

当我尝试执行以下写入文件时,我收到如下所示的错误...我做错了什么?

# create a method that writes to a file.

f = open("C:\Users\QamarAli\Documents\afaq's stuff\myFile.txt", "r+")
f.write('0123456789abcdef')

这是错误:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
IOError: [Errno 22] invalid mode ('r+') or filename: "C:\\Users\\QamarAli\\Documents\x07faq's stuff\\myFile.txt"
>>> 

【问题讨论】:

  • 你也可以只使用正斜杠。

标签: python file file-io


【解决方案1】:

尝试使用os.path和os.sep在windows上构造文件路径:

import os

file_path = os.path.join("C:" + os.sep, "Users", "QamarAli", "Documents", "afaq's stuff", "myFile.txt")
print file_path
print os.path.exists(file_path)

【讨论】:

    【解决方案2】:

    \a 是一个转义序列(看看你的文件名中发生了什么)。在使用 Windows 路径时使用 raw strings 告诉 Python 不要解释反斜杠转义序列:

    r"C:\Users\QamarAli\Documents\afaq's stuff\myFile.txt"
    ^ add this thing
    

    【讨论】:

    • 回溯(最近一次调用最后一次):文件“”,第 1 行,在 IOError:[Errno 2] 没有这样的文件或目录:“C:\\Users\ \QamarAli\\Documents\\afaq 的资料\\myFile.txt"
    • @AfaqQamar:那个文件存在吗?您的路径中没有拼写错误?
    • 不,没有错误问题,我是从文件属性中粘贴的。
    • @AfaqQamar:该文件是否存在或者您正在尝试创建它?
    【解决方案3】:

    在路径中使用正斜杠。

    f = open("C:/Users/QamarAli/Documents/afaq's stuff/myFile.txt", "r+")
    f.write('0123456789abcdef')
    

    【讨论】:

      【解决方案4】:
      f = open("C:\Users\QamarAli\Documents\afaq's stuff\myFile.txt", "a+")
      f.write('0123456789abcdef')
      

      试试这个:

      import os
      f = open(os.path.join("C:\\", "Users", "QamarAli", "Documents", "afaq's stuff", "myFile.txt"),  "r+")
      f.write('0123456789abcdef')
      f.close()
      

      确保文件已经存在,并且路径有效。

      我现在也看到了这个,看来你可能使用了错误的路径,看看ineterpreter给你的错误。而不是afaq's stuff 它说x07faq's stuff 加上它是我看到一个斜线的唯一地方。我想我同意 blender 你的文件路径不对。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-09
        • 2015-09-01
        • 2011-11-22
        • 2018-02-18
        • 1970-01-01
        相关资源
        最近更新 更多