ich habe ~10.000 txt Datei die aus einem eMail Export stammen. Nun versuche ich in jeder Datei die dritte Zeile zu löschen. Dazu habe ich mir auch schon etwas gebastelt, was mir jedoch bei einigen Dateien einen Error ausspuckt (bei ~2 von 10 Dateien).
Es geht mir hier um eine schnelle Lösung, da es nur ein Mittel zum Zweck ist (Datenaufbereitung für predictiv analytics). Daher entschuldigt bitte die simplen Fragen, ich bin sonst auch ein befürworteter alles zu verstehen und durch selbstständige Recherche es zu lösen.
1. Bräuchte ich Hilfe zum UniCodeError
2. ggfs. Tipps oder Example wie ich in Zeile 1 nach einem String suche und falls dieser gefunden wird, die Datei in einen separaten Ordner speichert.
Code: Alles auswählen
import os
import itertools
for root, dirs, files in os.walk("./data"):
for test in files:
with open(os.path.join("./data", test)) as f, open('out.txt', 'w') as fo:
for linenum, line in enumerate(f, start=1):
if linenum != 2:
fo.write(line)
os.rename("out.txt",test)
Code: Alles auswählen
Traceback (most recent call last):
File "script.py", line 7, in <module>
for linenum, line in enumerate(f, start=1):
File "C:\Users\behren\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 5121: character maps to <undefined>
================ READY ================