【问题标题】:Unable to open txt file in python无法在python中打开txt文件
【发布时间】:2020-04-12 07:35:04
【问题描述】:

每当我尝试使用 python 访问.txt 文件时,我都会收到错误消息:

回溯(最近一次通话最后一次):

中的文件“C:/Users/monty/AppData/Local/Programs/Python/Python38-32/tess.py”,第 1 行 f1=open("d:\test.txt")
OSError: [Errno 22] 无效参数:'d:\test.txt'

请帮忙!

【问题讨论】:

  • 请向我们展示导致此错误的代码 - 没有代码,我们真的没有太多工作可以帮助您...
  • 使用open(r"d:\test.txt")open("d:/test.txt")。你需要知道escape character是什么。
  • 您将文件名命名为 tess.py
  • 您使用的是 Windows 机器。尝试使用转义字符提供绝对路径。 f = open("d:\\test.txt")

标签: python file-search


【解决方案1】:

使用双反斜杠而不是单斜杠指定路径(即反斜杠是转义字符)

fp = open('D:\\test.txt')

使用单斜杠

fp = open('D:/test.txt')

【讨论】:

    【解决方案2】:

    在普通的 Python 字符串文字中,反斜杠后跟某个字符具有特殊含义。 (搜索“字符串文字”和“转义序列”或参见here。)在这种情况下,\ttab 字符。试试这个:

    >>> print("d:\test.txt")
    d:  est.txt
    

    因此,当您尝试打开"d:\test.txt" 时,您打开的不是d 驱动器根目录中的文件test.txt,而是文件dtab@987654328 @ 在当前工作目录中。

    对此有多种解决方案。例如。使用原始字符串文字:r"d:\test.txt"

    【讨论】:

      【解决方案3】:

      在 python open() 函数中基本上需要 3 个参数:文件名、模式和编码。您已指定文件名,但仍需要指定模式。有很多模式,但您基本上需要其中的 3 个:

      "w" ->(write mode) 创建文件,如果文件存在则创建空文件 "a" ->(append mode) 创建文件,如果文件存在,则将新数据附加到以前的数据 "r" ->(读取模式)读取预先创建的文件。

      编码参数用于查看字符是否正确: ascii -> 英文字母 utf-8 -> 适用于世界上大多数语言(使用此)

      所以总而言之,你应该使用这样的开放函数选择适合你的目的:

      fp=open("filename.txt","w",encoding="utf-8")
      fp=open("filename.txt","a",encoding="utf-8")
      fp=open("filename.txt","r",encoding="utf-8")
      

      【讨论】:

        猜你喜欢
        • 2022-10-13
        • 2017-05-13
        • 1970-01-01
        • 2021-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-31
        相关资源
        最近更新 更多