【问题标题】:Can't read/open/ or do anything with a CSV file python 3.4 windows无法读取/打开/或对 CSV 文件执行任何操作 python 3.4 windows
【发布时间】:2014-06-27 15:51:00
【问题描述】:

我无法打开程序生成的任何 CSV 文件(我没有程序的完整详细信息),它的文件名类似于 266925.130314-88850999.word

该文件是 csv,它在 excel 2013 中打开,所有编辑器都很好,我尝试使用原始文件名打开,我尝试通过将扩展名从 .word 更改为 .csv 来打开

没有任何效果,我收到下面详细说明的错误。

CSV 的示例部分

"tes","","2PT26","",4,7,"TEST","SHEEP AND STUFFF                  1kg","",1.1111,9.9999,1,0.000,2.6900,0.0000,0.000,

空闲 gui 中的完整错误消息

>>> open('C:\Console2\edz\test.csv', 'r', newline='', encoding='utf-8')
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
open('C:\Console2\edz\test.csv', 'r', newline='', encoding='utf-8')
OSError: [Errno 22] Invalid argument: 'C:\\Console2\\edz\test.csv'

Pandas 错误(未给出完整信息,因为它有大量带有回溯的文本 - 如果需要,可以添加)

OSError: File b'C:\\Console2\\edz\test.csv' does not exist

我已经用

测试了这个文件是否存在
files = os.listdir("C:\Console2\edz")
print (files)

['report.csv', 'test.csv']

我可以使用与 report.csv 完全相同的代码(这个 csv 是一个已知的工作文件,不是由程序创建的)并且它加载得很好。

我不明白为什么这个文件打不开,我试过 open/read_csv/read_excel,都在 idle 和 pandas 上产生相同的错误。

拔掉我的头发,请帮忙。

【问题讨论】:

    标签: python excel csv pandas python-3.4


    【解决方案1】:

    这里的问题是 Python 在字符串中使用 escapes - '\t' 是一个制表符,因此当该序列出现在您的路径中时,它会改变含义(注意输出中的其他反斜杠如何被转义) . Python 正在寻找'C:\Console2\edz est.csv'

    最好的解决方案是对路径使用正斜杠 - Python 会做正确的事情,即使在 Windows 下也是如此。

    open('C:/Console2/edz/test.csv', 'r', newline='', encoding='utf-8')
    

    您也可以使用原始字符串 (r'C:\Console2\edz\test.csv') 或转义反斜杠 ('C:\\Console2\\edz\\test.csv') - 但前者无法处理尾随反斜杠,而后者难以读写。

    【讨论】:

    • 我尝试反转斜线并得到一个错误,没有得到它,奇怪的是我无法复制它,只是测试了反转斜线并且可以。非常感谢您的帮助。
    • @Kuzen 这一定是另一个导致错误的更改 - Python 绝对支持在 Windows 上使用正斜杠作为路径,这是一个文档化的功能。
    • 我不怀疑这一点,我已经尝试了几个小时对此感到沮丧。也许下次在我发疯之前生病来这里:P
    【解决方案2】:

    \t是python中的转义字符,试试\\t.

    C:\\Console2\\edz\\test.csv
    

    您也可以在路径(r'C:\Console2\edz\test.csv'','r')之前为字符串添加前缀r'raw string'

    【讨论】:

    • 这解决了问题,但我不认为它与 t 有任何关系,因为我现在可以通过添加 \\example pd.read_csv("C:\Console2\ edz\\wtfevah.bob 无论哪种方式都已修复,非常感谢!!!
    猜你喜欢
    • 2021-02-18
    • 2021-12-10
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    相关资源
    最近更新 更多