Ich habe gerade über 2000 TXT-Dateien, die ich in .csv-Dateien konvertieren muss. Jede wird sequenziell beschriftet (d. H. Nstar0001.txt, nstar0002.txt, etc ...). Ich habe mehrere Orte nach Antworten gesucht, aber oft sind die Lösungen für Python2.x oder verwenden veraltete Bibliotheken. Jede Sterndatei enthält 7 Datenspalten, die ich beim Konvertieren in das CSV-Format kennzeichnen möchte.Wie konvertiert man mehrere Textdateien in Csv-Format in Python3?
Hier ist mein letzter Versuch:
import csv
import os
import itertools
##Convert all nstar####.txt files to csv
stars = int(input("Enter the TOTAL number of stars (including 'bad' stars):"))
k = 1
while k < stars + 1:
if k < 10:
q = 'nstar' + '0' + '0' + '0' + str(k) + '.txt'
r = 'nstar' + '0' + '0' + '0' + str(k) + '.csv'
with open(q, 'rb') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line for line in stripped if line)
grouped = itertools.izip(*[lines] * 7)
with open(r, 'wb') as out_file:
writer = csv.write(out_file)
writer.writerow(('jd', 'mag', 'merr', 'id', 'cerr', 'serr', 'perr'))
writer.writerows(grouped)
Dieser von einer anderen Frage Stackoverflow ausgeliehen wurde und leicht modifiziert, um meine Bedürfnisse anzupassen. Doch bei Laufen bekomme ich
AttributeError: module 'itertools' has no attribute 'izip'
Ich weiß, dass diese Schleife nur für die ersten paar Dateien funktioniert, aber wollte nur daran zu arbeiten, bevor es für alle Dateien ausgeführt wird.
'izip 'ist in Python-2.x. Verwenden Sie 'zip' auf Python-3.x. Diese SO Post kann Ihnen helfen http://stackoverflow.com/questions/32659552/izip-not-working-in-python-3-x oder Sie können dies von Github versuchen https://github.com/nschloe/matplotlib2tikz/ issues/20 – alvits