TypeError: Erzwinge Unicode: brauche String oder Puffer, Liste gefunden

8

Ich versuche, ein Datenanalyse-Skript zum Laufen zu bringen. Es funktioniert soweit die Datenmanipulation betroffen ist. Was ich versuche, ist dies einzurichten, so dass ich mehrere benutzerdefinierte CSVs mit einem einzigen Befehl eingeben kann.

z.B.

%Vor%

Wenn Sie irgendwelche Ratschläge haben, wie Sie die Benennung der Ausgabe-CSV automatisieren können, so dass, wenn input = test.csv , output = test1.csv , würde ich das auch schätzen.

Abrufen

%Vor%

für die Zeile

%Vor%

Mein Code:

%Vor%

Ich verstehe nicht wirklich, was mit dem Fehler passiert. Kann jemand das in Laiensprache erklären?

Denken Sie daran, ich bin neu in der Programmierung / Python als Ganzes und bin im Grunde lernen alleine, also wenn möglich könnten Sie erklären, was schief geht / wie es zu beheben, damit ich es für zukünftige Referenz beachten kann.

    
user3234810 05.02.2014, 14:40
quelle

2 Antworten

11

args.infile ist eine Liste von Dateinamen, nicht ein Dateiname. Schleife darüber:

%Vor%

Hier habe ich os.path.splitext() verwendet, um die Erweiterung und den Basisdateinamen zu teilen, so dass Sie einen neuen Ausgabedateinamen erzeugen können, der 1 zur Basis hinzufügt.

    
Martijn Pieters 05.02.2014, 14:49
quelle
1

Wenn Sie ein nargs Argument für .add_argument angeben, wird das Argument immer als Liste zurückgegeben.

Wenn Sie alle angegebenen Dateien bearbeiten möchten, durchlaufen Sie diese Liste:

%Vor%

Oder wenn Sie wirklich nur eine einzige Datei angeben möchten; befreie dich einfach von nargs="+" .

    
geoffspear 05.02.2014 14:49
quelle

Tags und Links