Wie List und Strings genau editieren?

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.
Antworten
gaberchen
User
Beiträge: 9
Registriert: Donnerstag 21. März 2013, 15:30

Hi Leute,

über die "open" Funktoin lade ich eine Date mit ca. 1000 Zeilen.... deren Basis wie folt aussieht:
Tex1 = (5,4,3)
Text2 = (1,2,3)
...
wie kann ich nur die Zahlen aus den Strings extrahieren und ineinzelnen Spalten abspeichern, also
5.4.3
1.2.3
etc...

Vielen Dank für Eure Hilfe
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich habe jetzt eine ganze Weile nicht mehr groß mit Python programmiert, weshalb ich mir hier erlaube die Lösung zu posten:

Code: Alles auswählen

inputfile = "textfile.txt"
outputfile = "new_textfile.txt"

with open(inputfile) as f, open(outputfile,"w") as g:

    for line in f:
        # Wir nehmen mal den Zeilenumbruch am Ende raus
        # Ginge auch mittels split(")")[0] -Befehl
        line = line.replace(")\n","")
        line = line.replace(")","")
        line = line.split("(")[1]

        # Du willst offenbar aus den Kommas Punkte
        # machen
        line = line.replace(",",".")

        # Kontrollausgabe
        print(line)

        # Wir bereiten die Daten für die Speicherung vor
        line = line + "\n"
        
        g.write(line)
Das ließe sich auch anders programmieren, denke ich. Such, wenn du dich einarbeiten willst, nach den Befehlen für split(), replace() und strip(), auch wenn ich das mit strip() hier nicht verwende.

Ich hätte nichts gegen Hinweise anderer Benutzer zu meinem Quellcode. Das hat mir hier immer sehr gut gefallen und mich weitergebracht. In letzter Zeit habe ich mal etwas php programmiert. Die Foren haben eine andere Forenkultur als wir hier.
BlackJack

@pixewakb: Wenn man das Zeilenendezeichen am Anfang nicht „wegersetzt” braucht man es später nicht wieder hinzufügen. :-)
gaberchen
User
Beiträge: 9
Registriert: Donnerstag 21. März 2013, 15:30

Hi

Danke für deine Hilfe, jetzt habe ich aber eine weitere Frage

meine Listenelemente sehen jetzt wie folt aus

index 1 5, 4, 3 -> wenn ich dann nochmal auf Index1 klicke kann sind die Zahlen 5,4,3 als Index 1 2 3 gelistet. Also eine Art Subindex

Kann ich mit Python Elemente direkt ansprechen ... also mit x=data[1.1] die in einer subliste stecken?
BlackJack

@gaberchen: Auf Listenelemente kann man mit dem Indexoperator ``[index]`` zugreifen. Wenn das Element was man dann bekommt eine Liste (oder ein Sequenztyp im allgemeinen ist) kann man auf dessen Elemente mit dem Indexoperator zugreifen. Wer hätte das gedacht. ;-)

1.1 ist übrigens eine literale Gleitkommazahl. Die kann man nicht als Listenindex verwenden.

Was hast Du denn eigentlich vor? Denn Zugriff per Index ist oft nicht nötig. Gerade wenn Anfänger das machen, ist es meistens weil sie das aus anderen Programmiersprachen kennen und das in Python nachmachen, statt zum Beispiel direkt über die Elemente einer Liste zu iterieren.
Antworten