现在有一个文件有一百多万条数据,按行存储的。 100 多 M ,文本类型的。我想分割成小文件。每个文件 10000 行。想问下各位大神有没有解决办法。或者有代码就更好了。
1
ipwx 2017-01-01 19:16:30 +08:00
100M 这个还需要问大神…… 老老实实地边读边写不就行了,时间都在 IO 上不在运算上, Python 绰绰有余。
哦对了,最好是读写的两个文件在两块硬盘上,不然就很慢了。 |
2
z657386160z 2017-01-01 19:25:25 +08:00 via iPhone
split -l
|
3
skydiver 2017-01-01 19:28:35 +08:00
这种事情还需要用 Python ?直接 coreutils 自带的命令 split -l 10000 就可以了。
|
4
484A4B 2017-01-01 19:29:00 +08:00
如果不限定 Python 的话,用 shell 一行就够了
|
5
ipwx 2017-01-01 19:29:27 +08:00 1
|
6
AlisaDestiny OP @ipwx
如果把这一百多万行数据读到内存中用 split 分成一百多万行,我担心程序会崩~~ @z657386160z @skydiver @484A4B 哎。关键是是 window 系统。没有 split 命令。 QAQ |
7
AlisaDestiny OP @ipwx thank you very much.
|
8
Lpl 2017-01-01 19:48:19 +08:00 via Android
长春儿~?
|
9
v23ex 2017-01-01 19:51:48 +08:00 via iPhone
先在本地测试
|
10
Izual_Yang 2017-01-01 20:17:02 +08:00 via Android
@AlisaDestiny 有
|
11
guyskk 2017-01-01 20:35:12 +08:00 via Android
100M 不大,全部读进内存没事的
|
12
ericls 2017-01-01 20:37:14 +08:00 via iPhone
@AlisaDestiny Python 不会全部读进内存吧……
|
13
billlee 2017-01-01 20:49:48 +08:00
你为什么要全部读进内存,一行行读不行吗?
|
14
ryd994 2017-01-01 20:54:42 +08:00 via Android
莫不是 PHP 程序员?
这么大的文件我担心程序会崩 233333 用个 for 就搞定的事 或者 head 配合 tail ,根本不需要 Python |
15
jyf007 2017-01-01 20:58:39 +08:00 via Android
split -l 10000
什么 用 Python 我不知道 |
16
jyf007 2017-01-01 20:59:11 +08:00 via Android
@AlisaDestiny msys2 (滑稽)
|
18
AlisaDestiny OP @Lpl guess right.哈哈。
|
19
RqPS6rhmP3Nyn3Tm 2017-01-01 22:42:58 +08:00 via iPhone
Readline 读取至内存,然后写入不好吗
|
20
AlisaDestiny OP |
21
Miy4mori 2017-01-02 01:32:14 +08:00 via Android
兄弟,学学流的概念吧,处理文件要都读内存里全世界都要疯啊
|
22
qile1 2017-01-03 04:10:47 +08:00 via Android
f 。 readlines()
|
23
araraloren 2017-01-03 08:55:38 +08:00
@AlisaDestiny 自带的行读取函数大部分时候够用,大概是类似与 .readlines 之类的函数,我估计会做惰性处理,再说哪个用户会在乎那几百 M 内存。。
|
24
kevin8096 2017-01-03 11:08:05 +08:00
awk
|