2016-03-26 18 views
1

Ich habe eine Textdatei, die eine ganze Zahl pro Zeile enthält, zusammen mit zufälligen Zeichen wie \ |:. Ich würde sie gerne numerisch sortieren.Python: Sortieren der Inhalte einer TXT-Datei in numerischer Reihenfolge, die Symbole enthält

Ich weiß derzeit, wie es mit nur ganzen Zahlen in der Datei geht.

import csv 
import operator 

sample = open('sampledata.txt') 

csv1 = csv.reader(sample) 

sort = sorted(csv1, key=lambda x : int(x[0])) 
for eachline in sort: 
    print eachline 

Beispiel für Textdatei:

:279:: 
    ::123::/\ \ 
     ::562::___ 
    ::482:: |:| | 
::183:: 
::528::  ___ 

Welche Code kann ich brauchen, um für diese Zeichen ignoriert werden.

Jede Hilfe sehr geschätzt

Antwort

1

Statt int(x[0]), würde das nur das erste Zeichen analysiert, alle Zeichen erhalten, die Ziffern sind und sie dann kombinieren, mit int(''.join(c for c in x if c.isdigit())).