Die Variable files
in Ihrem Code ist der Inhalt des Ordners reference
, was alle Dateien und Unterordner des Ordners bedeutet. Sie werden in einer Liste von Zeichenfolgen zurückgegeben, die nur den Namen der Datei oder des Unterordners enthalten. Dies bedeutet, dass Sie den Pfad selbst voranstellen müssen.
Beispiel:
dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)
for file in files:
# Skip non-files
if not os.path.isfile(file):
continue
with open(os.path.join(dir_path, file), 'rU') as f:
reader = csv.reader(f)
row1 = next(reader)
Eine Alternative mit dem pathlib
Modul:
for file in Path('reference/').glob('*'):
if not file.is_file():
continue
with open(str(file.resolve()), 'rU') as f:
reader = csv.reader(f)
row1 = next(reader)
Würden Sie nicht besser dran, die erste Zeile jeder dieser Dateien in das Lesen, um sie zu einer Liste angehängt und dann an csvreader
weiterleiten?
Beispiel:
lines = []
with open(str(file.resolve()), 'rU') as f:
lines.append(f.readline())
reader = csv.reader(lines)
for row in reader:
# whatever you want to do with the parsed lines
Beachten Sie, dass dies Unterordner nicht berücksichtigt und versuchen wird, sie als Datei zu öffnen. –
Ja, danke Kristof. –
Werke. Jetzt möchte ich die Ergebnisse mit dem Namen der Datei als Schlüssel und den Spaltenüberschriften als Werte speichern. Wäre es am besten, ein Wörterbuch zu erstellen? oder eine Liste? row1.append [f] = next (reader) als Liste funktioniert nicht ... – nlr25