我有有數千個值的數量一樣的文本文件。 。 。 。 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個條目 –