Seite 1 von 1

Splitten in Python

Verfasst: Samstag 7. November 2009, 12:20
von Chibi
Hi, ich fange grade aufgrund meines Studiums an mich mit Python zu beschäftigen.

Hätte da mal ne Anfänger Frage. Hab mich zu meinem Problem auch schon mit dem split Befehl auseinandergesetzt, aber das klappt nicht so ganz.

Also ich lese mit dem Befehlen

Code: Alles auswählen

fileName = raw_input("Gebe einen Dateinamen ein: ")

fobj = open(fileName, "r") 


for line in fobj: 
    print line 

fobj.close() 
die Datei ein und lass sie mir ausgeben. Die Datei enthält viele Informationen

Ich möchte aber jetzt zB nur diesen fettgedruckten Teil ausgegeben haben

Species in order:

1. F2.CM.95.M
2. F2.CM.95b
3. F1.FR.96.M
4. F1.BE.93.V
5. 00-0134
6. 00-0160
7. 00-0036
8. 00-0107
9. 00-0279
10. 00-0252

11. B.US.83.RF
12. 00-0162
13. B.US.90.WE
14. 00-0161
15. 00-0271
16. 00-0278
17. 00-0285
18. 00-0014
19. 00-0005
20. 00-0350



Wie realisieren ich das am besten? Für Tips wäre ich sehr dankbar

Verfasst: Samstag 7. November 2009, 12:42
von gkuhl
Hallo Chibi,

dafür gibts sicherliche hunderte Lösungen, wobei manche besser und manche schlecher sind. Ich würde das jetzt spontan wie folgt lösen:

Code: Alles auswählen

with open('test.dat', 'r') as data:
    for line in data:
        if line.split('.')[0] in map(str,range(5,11)):
            print line,
Grüße
Gerrit

Verfasst: Samstag 7. November 2009, 15:38
von Hyperion
Wir hatten da neulich schon mal eine Frage, die sehr ähnlich gelagert war:
http://www.python-forum.de/topic-20745.html

Da findest Du etwas dazu :-)

(Wenn Du Python >= 2.5 verwendest fällt das finally natürlich weg, da Du das Öffnen dort mit with realisieren solltest)

Verfasst: Sonntag 8. November 2009, 01:21
von Chibi
Vielen Dank, das hat mich schon mal ein Stück weiter gebracht

Verfasst: Sonntag 8. November 2009, 11:11
von sma
Dies finde ich einfacher:

Code: Alles auswählen

if 5 <= int(line.split(".", 1)) <= 10:
Stefan