查看一个非常大的CSV文件的一部分?

我有一个〜1.0gb的CSV文件,当试图加载到Excel只是为了查看,Excel崩溃。 我不知道该文件的模式,所以我很难将其加载到R或Python。 该文件包含餐厅评论,并在其中包含逗号。

如何在Windows记事本或Excel中打开文件的一部分(比方说前100行,或1.0mb的值)?

在我的Excel版本中,打开的对话框似乎没有提供“只读这些行”选项,只有一行开始(用于跳过标题我猜)。

所以如果你的平台上没有二进制头文件,但是Python的一个简单的工作解决scheme应该是(硬编码100行aka行):

 #! /usr/bin/env python from __future__ import print_function import sys LINE_COUNT = 100 def main(): """Do the thing.""" if len(sys.argv) != 3: sys.exit("Usage: InFIle OutHead100File") in_name, out_name = sys.argv[1:3] print("Simple head(100)[%s] -> %s ..." % (in_name, out_name)) with open(in_name, 'rt') as f_in, open(out_name, 'wt') as f_out: for n in range(LINE_COUNT): f_out.write(f_in.readline()) if __name__ == '__main__': main() 

并且可以调用上面的代码(假设存储在脚本文件so_x_head_100.py并给定一个文件huge.csv应该将前100行复制到100.csv文件中):

 $ python2 ./so_x_head_100.py huge.csv 100.csv Simple head(100)[huge.csv] -> 100.csv ... 

现在在100.csv100.csv的前100行。

如果你想为特定的行做更多的select性捕获,那么python csv模块将允许你逐行读取csv文件到Python数据结构中。 请参阅文档。

这可能是有用的,只要抓住第一百行没有显示任何关于许多列,因为它们在所有这些行中是空白的。 所以你可以很容易地用Python编写一个程序来读取尽可能多的行,在特定的列中查找和写出一些非空白数据的行。 同样,如果你想分析符合特定条件的数据的一个子集,你可以读取所有的行,只写有趣的数据进行进一步的分析。

csv的替代品是pandas。 更大的学习曲线,但它可能是分析大数据的正确工具。 (1Gb这几天不是很大)。