繁体   English   中英

CSV阅读器无法读取整个文件

[英]CSV reader not reading entire file

我已经看过这个问题的先前答案,但在每个场景中,提问者都在询问他们对文件做了哪些具体的事情,但即使我没有,也会出现问题。

我有一个27,204行的.csv文件。 当我打开python解释器时:

python
import csv
o = open('btc_usd1hour.csv','r')
p = csv.reader(o)
for row in p:
  print(row)

然后我只看到显示给我的文档的最后三分之一。

请尝试以下代码

import csv

fname = 'btc_usd1hour.csv'
with open(fname, newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

没有样品很难说出问题是什么。 我想如果你添加newline=''来打开文件,问题就会被删除。

使用with构造自动关闭文件。 如果不需要进一步说明,请使用f名称作为文件对象 将文件名存储到fname以便将来修改更容易(并且还可以轻松复制以后程序的代码片段)。

olisch可能是正确的,控制台只是滚动得如此之快,你无法看到结果。 您可以将结果写入另一个文本文件,如下所示:

with open(fname, newline='') as fin,\
     open('output.txt', 'w') as fout:
    reader = csv.reader(fin)
    for row in reader:
        fout.write(repr(row) + '\n')

repr函数将row列表转换为其字符串表示形式 print调用内部功能,因此您将获得与屏幕上观察到的相同的结果。

试试吧,在我工作:

  with open(name) as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row) 

参考:

https://docs.python.org/3.6/library/csv.html#csv.DictReader

也许你的回滚缓冲区只是为了查看整个列表?

一般来说,你的csv.reader调用应该工作正常,除了你的27k行不是很长,所以你可以打到任何64位边界,这是非常罕见的。

len(o)可能很有趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM