我有有数千个值的数量一样的文本文件。 。 。 。 n分裂大文件分成小文件
我知道我们可以使用awk来分离这些值。但是有没有办法可以在不同的文本文件中获取第一个10,20,40,80,160 ....,n个值。
我使用Python这样做,但它需要大量的时间去这些files.Here分开是蟒蛇
import numpy as np
from itertools import islice
data = np.loadtxt('ABC.txt',
unpack=True,
delimiter=',',
skiprows=1)
n = 10
iterator = list(islice(data[0], n))
for item in range(n):
np.savetxt('output1.txt',iterator,delimiter=',',fmt='%10.5f')
iterator = list(islice(data[0], n*2))
for item in iterator:
np.savetxt('output2.txt', iterator, delimiter=',',fmt='%10.5f')
iterator = list(islice(data[0], n*4))
for item in iterator:
np.savetxt('output3.txt', iterator, delimiter=',',fmt='%10.5f')
iterator = list(islice(data[0], n*8))
for item in iterator:
np.savetxt('output4.txt', iterator, delimiter=',',fmt='%10.5f')
等的示例代码。
是否有更好的方式在bash或python中做到这一点。先谢谢你!
'np.loadtxt'负载一切在一次到内存中。你需要一个迭代器。标准Python的'open'提供了一个迭代器接口。不过,你必须自己解析。 – ForceBru
期望的结果是什么?一堆文件,每个文件都有来自第一列和10,20,... n个第一行的数据?你的_n有多大?_ – 9000
@ 9000:是的,你是对的,这些文件有大约36000个条目 –