Strings schneiden und in eine Liste einfügen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
skanami
User
Beiträge: 23
Registriert: Donnerstag 11. Oktober 2007, 20:33
Kontaktdaten:

Strings schneiden und in eine Liste einfügen

Beitragvon skanami » Montag 12. November 2007, 14:27

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?
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Montag 12. November 2007, 14:35

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.
skanami
User
Beiträge: 23
Registriert: Donnerstag 11. Oktober 2007, 20:33
Kontaktdaten:

Beitragvon skanami » Montag 12. November 2007, 14:59

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'
skanami
User
Beiträge: 23
Registriert: Donnerstag 11. Oktober 2007, 20:33
Kontaktdaten:

Beitragvon skanami » Montag 12. November 2007, 15:05

natürlich nicht entry.split() sondern str.split() oder auch verkehrt?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Montag 12. November 2007, 15:12

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.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
skanami
User
Beiträge: 23
Registriert: Donnerstag 11. Oktober 2007, 20:33
Kontaktdaten:

Beitragvon skanami » Montag 12. November 2007, 15:23

Jau, da ich im TXT File eh nur eine Zeile hab, hab ichs nun readline() genannt klappt nun. Danke !

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Holger Chapman