2016-07-11 24 views
0

Ich verwende diesen Code, um einen Teil meiner lokal gespeicherten HTML-Dateien zu extrahieren und das gekürzte neue Dokument in einer TXT-Datei zu speichern.Ausschneiden einfacher HTML-Dateien mit RegEX

import glob 
import os 
import re 


def extractor(): 
    os.chdir(r"F:\Test") # the directory containing your html 
    for file in glob.iglob("*.html"): # iterates over all files in the directory ending in .html 
     with open(file, encoding="utf8") as f, open((file.rsplit(".", 1)[0]) + ".txt", "w", encoding="utf8") as out: 
      contents = f.read() 
      extract = re.compile(r'(Start).*?End', re.I | re.S) 
      cut = extract.sub('', contents) 
      if re.search(extract, contents) is not None: 
       out.write(cut) 
      out.close() 
extractor() 

Es funktioniert gut für die meisten meiner Dateien aber für ein paar Dateien, die ich einige Codierung Probleme tun und erhalten:

Traceback (most recent call last): 
    File "C:/Users/6930p/PycharmProjects/untitled/Versuch/CutFile.py", line 16, in <module> 
    extractor() 
    File "C:/Users/6930p/PycharmProjects/untitled/Versuch/CutFile.py", line 14, in extractor 
    out.write(cut) 
    File "C:\Users\6930p\Anaconda3\lib\encodings\cp1252.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode characters in position 241205-241210: character maps to <undefined> 

jemand eine Idee, was ist das Problem? Ich dachte mit encoding="utf8" Ich habe keine Probleme mit der Codierung ...

Irgendwelche Hilfe geschätzt!

Antwort

0

Ok, es war ein Problem mit encoding="utf8". Es hat vergessen, meine neu erstellte TXT-Datei mit "utf8" zu codieren. Code ist aktualisiert und funktioniert!