Seite 1 von 1

Strings schneiden und in eine Liste einfügen

Verfasst: Montag 12. November 2007, 14:27
von skanami
Hallo,
weiss jemand wie man aus einem TXT File, worin sich Pfadinformation als einen langen String vorliegen. in eine Liste eingefügt werden kann ? Wenn ich bei Python einen String in eine Liste einfügen will muss ich doch nur angeben zwischen welchen Positionen der string ausgeschnitten und als ein item eingefügt werden soll, allerdings ist die Angabe in Form von Integerzahlen. Was mach ich denn bei meinen Pfaden z.B.
C:\\bin\hick\t.exe_*_C:\\bin\huck\setup\u.exe_*_C:\\bin\hock\graph\v.exe_*_.... usw

die Pfade sind schliesslich immer unterschiedlich lang und zufällig.
Kann man irgendwie die Position in Form von Strings angeben ? und die einzelnen Pfade als Einträge in eine liste einfügen?

Verfasst: Montag 12. November 2007, 14:35
von schlangenbeschwörer
Hi!
Was genau willst du? Mit s.split("_*_") kannst du deine Pfade trennen und hast direkt eine Liste. Mit indizes kannst du das mit s[5:10] machen. Ansonsten gibts noch diverse string-Methoden zum suchen und finden, wenn du aber schon ne liste hast, kannste einfach die Längen der Listitems + nach bedarf den 3 Trennzeichen verrechnen.

Verfasst: Montag 12. November 2007, 14:59
von skanami
s.split() hab ich bereits angewendet aber es kommt ne fehlermeldung daraufhin.
so sieht mein source code aus :

def fastaread() :
eingabe = raw_input("asfs")

f = open("d:\\FastaFiles.txt")
entry = f.readlines()
fliste = entry.split("_*_")

print fliste

fastaread()


und das ist die fehlermeldung.

fliste = entry.split("_*_")
AttributeError: 'list' object has no attribute 'split'

Verfasst: Montag 12. November 2007, 15:05
von skanami
natürlich nicht entry.split() sondern str.split() oder auch verkehrt?

Verfasst: Montag 12. November 2007, 15:12
von Rebecca
skanami hat geschrieben: f = open("d:\\FastaFiles.txt")
entry = f.readlines()
fliste = entry.split("_*_")
skanami hat geschrieben: und das ist die fehlermeldung.

fliste = entry.split("_*_")
AttributeError: 'list' object has no attribute 'split'
f.readlines liefert eine Liste mit allen Zeilen. Du willst aber split nicht auf die Liste aller Zeilen, sondern auch eine einzelne Zeile anwenden, also ein Element der Liste.

Verfasst: Montag 12. November 2007, 15:23
von skanami
Jau, da ich im TXT File eh nur eine Zeile hab, hab ichs nun readline() genannt klappt nun. Danke !