2017-06-23 3 views
0

Ich habe zwei Beispiele für Code, die dasselbe ausführen sollen (Textdateien verarbeiten und das Ergebnis in einem Ausgabedatei speichern). Allerdings ist dieses nicht für mich arbeiten:Speichern von Dateien mit Python-Codecs

with codecs.open('outfile.txt', 'w', 'utf-8') as outfile: 
    for f in os.listdir(my_files): 
     outfile.write(some_function(codecs.open(f, 'r', 'utf-8'))) 
     outfile.write('\n') 

Während diese perfekt funktioniert:

outfile = open('outfile.txt', 'w') 
for f in os.listdir(my_files) 
    with open(f) as f_: 
     text = f_.read().decode('utf-8') 
    text = some_function(text) 
    outfile.write(text.encode('utf-8')) 
    outfile.write('\n') 

Bin ich etwas falsch mit Python-Codecs zu tun? Vielen Dank!

+0

Vielleicht geben Sie Ihren Fehler? :) – Roelant

Antwort

2

Diese Linie ...

outfile.write(some_function(codecs.open(f, 'r', 'utf-8'))) 

... öffnet sich ein Datei-Objekt, ohne Text übergeben. Sie wollen auf eine read() heften, damit es funktioniert, wie folgt: codecs.open(f, 'r', 'utf-8').read()

+0

Oh mein Gott, das hat das Problem total gelöst! Vielen Dank :) – fremorie

+0

jetzt fühle ich mich so dumm, solche Fragen zu stellen :) Ich habe buchstäblich eine Stunde lang versucht zu verstehen, was los ist – fremorie

+0

@DariaSmirnova Prost. Es passiert uns allen. –

Verwandte Themen