Python 如何按照行来分割大文件。

2017-01-01 19:08:20 +08:00
 AlisaDestiny

现在有一个文件有一百多万条数据,按行存储的。 100 多 M ,文本类型的。我想分割成小文件。每个文件 10000 行。想问下各位大神有没有解决办法。或者有代码就更好了。

6537 次点击
所在节点    Python
24 条回复
ipwx
2017-01-01 19:16:30 +08:00
100M 这个还需要问大神…… 老老实实地边读边写不就行了,时间都在 IO 上不在运算上, Python 绰绰有余。

哦对了,最好是读写的两个文件在两块硬盘上,不然就很慢了。
z657386160z
2017-01-01 19:25:25 +08:00
split -l
skydiver
2017-01-01 19:28:35 +08:00
这种事情还需要用 Python ?直接 coreutils 自带的命令 split -l 10000 就可以了。
484A4B
2017-01-01 19:29:00 +08:00
如果不限定 Python 的话,用 shell 一行就够了
ipwx
2017-01-01 19:29:27 +08:00
AlisaDestiny
2017-01-01 19:35:05 +08:00
@ipwx
如果把这一百多万行数据读到内存中用 split 分成一百多万行,我担心程序会崩~~

@z657386160z
@skydiver
@484A4B
哎。关键是是 window 系统。没有 split 命令。 QAQ
AlisaDestiny
2017-01-01 19:36:45 +08:00
@ipwx thank you very much.
Lpl
2017-01-01 19:48:19 +08:00
长春儿~?
v23ex
2017-01-01 19:51:48 +08:00
先在本地测试
Izual_Yang
2017-01-01 20:17:02 +08:00
guyskk
2017-01-01 20:35:12 +08:00
100M 不大,全部读进内存没事的
ericls
2017-01-01 20:37:14 +08:00
@AlisaDestiny Python 不会全部读进内存吧……
billlee
2017-01-01 20:49:48 +08:00
你为什么要全部读进内存,一行行读不行吗?
ryd994
2017-01-01 20:54:42 +08:00
莫不是 PHP 程序员?
这么大的文件我担心程序会崩 233333

用个 for 就搞定的事
或者 head 配合 tail ,根本不需要 Python
jyf007
2017-01-01 20:58:39 +08:00
split -l 10000
什么 用 Python
我不知道
jyf007
2017-01-01 20:59:11 +08:00
@AlisaDestiny msys2 (滑稽)
kankana
2017-01-01 22:27:26 +08:00
@ryd994

php 可以用 fopen, fgets, fclose 这些函数啊。不会整个读到内存的。。。
AlisaDestiny
2017-01-01 22:41:34 +08:00
@Lpl guess right.哈哈。
RqPS6rhmP3Nyn3Tm
2017-01-01 22:42:58 +08:00
Readline 读取至内存,然后写入不好吗
AlisaDestiny
2017-01-01 22:54:45 +08:00
@guyskk 确实。我按照上面别人给的代码执行。任务管理器中内存看不出变化。就是 CPU 高了。

@billlee 初学者,就是不知道怎么多次读才来请教的。

@ryd994 把文件分成块并不是最终目的。所以我需要用程序来解决。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331596

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX