ich eine Datei mit folgendem Blick haben:Python: Erstellen von Stücken von Dateien basierend auf der Anzahl der Zeilen
ID Num1 Num2
1 1 2
1 2 4
1 3 6
2 4 8
2 5 10
3 6 12
3 7 14
3 8 16
3 9 18
4 10 20
5 11 22
5 12 24
Ich möchte unter der Bedingung, um die Datei in mehrere Dateien basierend aufzuteilen, dass jede Datei nicht mehr enthalten sollte als 3 ID-Werte. Also, in diesem Fall werden ihre zwei Ausgabedateien. 1. Datei sollte die Ausgabe haben:
1 1 2
1 2 4
1 3 6
2 4 8
2 5 10
3 6 12
3 7 14
3 8 16
3 9 18
Während die zweite Datei sollte wie folgt aussehen:
4 10 20
5 11 22
5 12 24
Aber anstatt es erzeugt, drei Dateien mit der zweiten Datei als eine leere Datei und dritte Datei enthält Werte von nur ID = 5.
folgender Code ist in Python geschrieben:
infile=open("Input.txt","r")
outfile=open("Output1.txt","w")
list_value=[] # Storing the values of 1st column
file=2 # Naming the file
value="" # 1st column value
for line in infile:
value=line.split()[0]
if value in list_value:
outfile.write(line)
else:
list_value.append(value)
if (len(list_value)) < 4:
outfile.write(line)
elif (len(list_value))==4:
outfile=open("Output"+str(file)+".txt","w")
outfile.write(line)
file=file+1
list_value=[]
Der Code funktioniert prima nur für die ersten Sequenzen, aber nicht am Ende zu arbeiten.
Alle Befehle für Linux können auch hilfreich sein.
Danke!
Sie annehmen, dass die IDs in der Eingabedatei sortiert sind? – Shai
Sie sollten Ihre Dateien richtig '.close() '. –
Ja IDs sind in der Datei sortiert. – AsmaTahir