Entfernen nicht druckbarer "Gremlin" Zeichen aus Textdateien

8

Ich verarbeite eine große Anzahl von CSV-Dateien in Python. Die Dateien werden von externen Organisationen empfangen und mit einer Reihe von Codierungen codiert. Ich möchte eine automatisierte Methode finden, um Folgendes zu entfernen:

  • Nicht-ASCII-Zeichen
  • Steuerzeichen
  • Null (ASCII 0) Zeichen

Ich habe ein Produkt namens "Finden und Ersetzen!" das würde reguläre Ausdrücke verwenden, so dass ein Weg, das obige mit einem regulären Ausdruck zu lösen, sehr hilfreich wäre.

Danke

    
John Steedman 25.09.2013, 11:48
quelle

3 Antworten

5

Eine Alternative, an der Sie interessiert sein könnten, wäre:

%Vor%

Es filtert einfach alle nicht druckbaren Zeichen aus der unsauberen Zeichenfolge, die es empfängt.

%Vor%     
Noctis Skytower 25.09.2013, 13:39
quelle
5

Versuchen Sie Folgendes:

%Vor%

Die Idee ist, jedes NUL oder "high ASCII" -Zeichen (d. h. \ 0 und solche, die nicht in 7 Bits passen) abzugleichen und sie zu entfernen. Sie können weitere Zeichen hinzufügen, wenn Sie sie finden, z. B. ASCII ESC oder BEL.

Oder das:

%Vor%

Die Idee ist, nur den begrenzten Bereich von "druckbarem ASCII" zuzulassen, aber beachten Sie, dass dadurch auch Zeilenumbrüche entfernt werden. Wenn Sie Zeilenumbrüche oder Tabulatoren oder Ähnliches beibehalten möchten, fügen Sie sie einfach in die Klammern ein.

    
John Zwinck 25.09.2013 12:05
quelle
2

Ersetzen Sie alles, was kein wünschenswertes Zeichen ist, mit einem Leerzeichen (löschen Sie es):

%Vor%

Dies erlaubt alle Leerzeichen (Leerzeichen, Zeilenumbrüche, Tabulatoren usw.) und alle "normalen" Zeichen ( ! ist das erste ASCII-druckbare und ~ ist das letzte ASCII-Zeichen unter Dezimal 128).

    
Bohemian 25.09.2013 14:57
quelle

Tags und Links