2017-08-10 5 views
0

Ich möchte zwei oder mehr Dateien in nur einer Datei mit allen Informationen hinzufügen. Mein Code ist:IOError: [Errno 2] Keine solche Datei oder Verzeichnis: 't' python

def add_file(filenames, output_file): 
    with open(output_file, 'w') as master_file: 
     master_file.write('C/A,UNIT,SCP,DATEn,TIMEn,DESCn,ENTRIESn,EXITSn\n') 
     for filename in filenames: 
      with open(filename, 'r') as infile: 
       master_file.write(infile.read()) 

Wenn ich rufe alle Dateien anzeigen setzen:

IOError: [Errno 2] No such file or directory: 't'

Warum? Was habe ich falsch gemacht?

+1

Sie für 'filenames' in einem String übergeben, so durch die Zeichenfolge es – Wondercricket

Antwort

1

Sie übergeben eine Zeichenfolge als filenames und die Funktion iteriert es durch Zeichen. Übergeben Sie stattdessen eine Liste. Es ist möglicherweise besser, die Funktion von add_file in add_files umzubenennen.

Seien Sie vorsichtig mit out.txt; Sie sollten es im Append-Modus statt im "w" -Modus öffnen, wenn Sie diese Funktion mehr als einmal aufrufen möchten.

+0

oder eine andere iterable iterieren. –

0

Sie passieren eine Zeichenfolge für filenames, so dass die Funktion, die sie durch den String iteriert. Übergeben Sie eine Liste, um dies zu beheben.

0

Die obige Zeile iteriert eine durch das erste Argument, das zufällig eine Zeichenfolge ist.

Wenn Sie diese Zeile nennen

with open(filename, 'r') as infile: 

‚Dateiname‘ ist das, was in den Dateinamen als ein Element vorhanden ist. Der Fehler tritt auf, sobald der erste Buchstabe der Zeichenfolge erreicht wird.

Verwandte Themen