1

我无法打开程序生成的任何 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 上产生相同的错误。

拉我的头发,请帮忙。

4

2 回答 2

4

这里的问题是 Python在字符串中使用转义'\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') - 但前者无法处理尾随反斜杠,而后者难以读写。

于 2014-05-09T19:33:29.320 回答
2

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

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

您还可以 r在路径之前为字符串添加“原始字符串” 前缀(r'C:\Console2\edz\test.csv'','r')

于 2014-05-09T19:32:26.590 回答