2016-06-02 4 views
0

Ich versuche herauszufinden, wie Sie am besten bestimmte Zeilen aus mehreren TXT-Dateien in Python auswählen. Eine Möglichkeit wäre, Regex zu verwenden, aber ich habe gelesen, dass dies wahrscheinlich eine "schwere" Lösung für einen einfacheren Auswahlprozess von Linien wäre. Eine andere Möglichkeit könnte string.split() sein, aber es scheint, dass ich zuerst alle Zeilen aufteilen müsste, bevor ich meine Auswahl treffen würde. Die Auswahl, die ich machen wollen ist auf den folgenden Bedingungen:Python: Wählen Sie eine Zeile, wenn bestimmte Zeichen durch Tab am Zeilenende getrennt sind

wenn ein Leitungsende mit ‚einer Registerkarte eine Registerkarte‘ dann ich diese Zeile wählen

in regex dies folgendes wäre:

((a\t){2}|(b\t){2})\n # character 'a' or 'b' at end of line 

Die Funktion line.endswith ('aa') ist ebenfalls verfügbar, erkennt Tabulatoren jedoch nicht.

if line.endswith('a a '): # tabs are not recognized at end of line 

Können Sie bitte beraten, wenn regex ein guter oder zu schwer Gebrauch ist oder wenn String.split oder ein andere Funktion wie line.endswith ist besser geeignet? Danke.

+5

Eine Registerkarte in einer Zeichenfolge ist nicht vier Leerzeichen, * es ist eine Registerkarte * ''\ t''; 'line.endswith ('a \ ta \ t')' (Star Wars-Referenz?) – jonrsharpe

Antwort

2

endswith ist genug, um Ihre Auswahl Problem zu lösen:

\t ist ein guter Weg, ein tab in einer Python-Zeichenfolge darzustellen:

>>> print('a\ta\t') 
a  a  

Und endswith es Spiel schön:

>>> print('foobar a\ta\t'.endswith('a\ta\t')) 
True 
Verwandte Themen