Ich hoffe der Code ist nicht zu durcheinander. Also folgendes wird gemacht. Ich öffne zuerst eine Datei und les mir aus der ersten Zeile die ersten 17 Spalten als neuen Dateinamen raus. Danach schließe ich die Datei wieder und öffne sie erneut. Das war nötig, weil ich ansonsten zwar auch die 17 Spalten als Dateiname bekam, diese Spalten dann aber auf einmal in der Datei fehlten. Wende also wohl einen kleinen "Bauerntrick" an. Das geht vermutlich auch anders, aber so erfüllt es ja auch seinen Zweck.
Nachdem ich die Datei ausgegeben habe, erzeuge ich eine neue Datei, die den Dateinamen der 17 Spalten hat wie oben beschrieben.Eingelesen wird dabei die Zeile 0 bis 224.
Nun habe ich Dateien wo ich alle 224 Zeilen das gleiche machen muss. Dafür habe ich mir eine for Schleife überlegt, bei dem ich dem Programm sage, dass es mir immer das "i" aus der Range nehmen soll. Zumindest vermute ich dass ich das dem Programm gesagt habe. Also erst 0-224, dann 224-448 usw.
Klappen tut das aber nicht so wirklich. Er schmeißt mir dann eben alle 448 Zeilen in eine Datei statt zwei mit dem Dateinamen der ersten Zeile.
Das drüfte daran liegen, dass ich dem Programm noch nicht gesagt habe, dass er den Dateinamen ja für Datei 1 aus Zeile 0 und für Datei 2 aus Zeile 224 usw. nehmen muss. Ich finde dafür keinen Syntax wie man bei readline neben der Spaltenangabe noch die Zeilenangabe angeben kann und das Ganze dann durch eine Variable für eine Schleife ersetzen kann.
Hier ist mal der Code. Momentan habe ich die Schleifen ausgeschaltet.
Code: Alles auswählen
# Defintion von Variablen
# Definition von k (Spaltenlaenge fuer den Dateinamen)
k = 17
# Definition von i (Anzahl der Zeilen pro Bild)
i = 224
# Definition von j (Startpunkt des Bildes)
j = i - 224
#j = 0
#for i in range (0,672,224): # hier fehlt noch die Zeilenangabe wo die Spalten als Dateiname verwendet werden müssen
# öffnet entsprechende Datei
fd = file("C:/Test/0601010001", "rb")
# Defintion Dateiname
Dateiname = fd.readline (k)
# schließt Datei wieder
fd.close()
# öffnet entsprechende Datei
fd = file("C:/Test/0601010001", "rb")
# Ließt die gesamte Datei ein
inhalt = fd.readlines()
# schließt Datei wieder
fd.close()
# Schreibt Inhalt in Shell
#print inhalt
#for i in range(0,672,224):
# Erzeugt neue Datei
fd_out = file(Dateiname, "w")
# Schreibt Inhalt in neue Datei
fd_out.writelines(inhalt[j:+i])
# Schließt erzeugte Datei wieder
fd_out.close()