Ich habe eine Textdatei, die Tausende von Zahlenwerten wie hat. . . . nSplitting große Datei in kleine Dateien
Ich weiß, dass wir awk verwenden können, um diese Werte zu trennen. Aber gibt es einen Weg, auf dem man erste 10,20,40,80,160 ...., n-Werte in verschiedenen Textdateien holen kann.
Ich war mit Python so zu tun, aber es braucht viel Zeit, um diese files.Here zu trennen, ist der Beispielcode für Python
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')
und so weiter.
Gibt es eine bessere Möglichkeit, dies in bash oder in Python zu tun. Vielen Dank im Voraus!
'np.loadtxt' alles Lasten auf einmal in den Speicher. Sie benötigen einen Iterator. Das Standard-Python-'open' bietet eine Iterator-Schnittstelle. Sie müssen die Analyse jedoch selbst durchführen. – ForceBru
Was ist das gewünschte Ergebnis? Eine Reihe von Dateien mit jeweils Daten aus der ersten Spalte und 10, 20, ... n ersten Zeilen? Wie groß ist Ihre _n _ – 9000
@ 9000:? Ja, Sie sind richtig, und die Dateien haben rund 36.000 Einträge –