Seite 2 von 2

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:17
von rennmaus
Muss da ein Plus anstatt des Kommas?

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:19
von __deets__
Du gibst ein Tupel als Dateiname an. Du musst schon einen einzelnen String der Form "Datei.Endung" angeben. Oder eben eine Variable, die einen solchen String enthaelt.

Und der Modus 'x' legt keine Datei an, sondern erzeugt ein io.TextIOWrapper-Objekt, in das du dann im Speicher die Daten ablegst. Willst du das?

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:21
von rennmaus
Naja, ich will dass es die eingegebenen Daten abspeichert, sodass ich sie später über python wieder abrufen kann.

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:26
von __deets__
Dann ist x wohl nicht der richtige Modus. In der Dokumentation zu open steht, weches der richtige Modus ist. Und bitte das with-Statement benutzen, statt dem expliziten close.

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:33
von rennmaus
Tut mir leid, wenn ich mich gerade ein bisschen blöd anstelle, aber ich habe gerade keine Ahnung, welches dann der richtige Modus ist...

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:44
von nezzcarth
Wenn du in eine Datei schreiben möchtest, nimmst du den Modus 'w'. Siehe auch: https://docs.python.org/3/library/functions.html#open

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:45
von rennmaus
Ich glaube jetzt klappts!!

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 17:57
von rennmaus
Oder auch nicht... Allerdings hapert es jetzt beim abrufen der Datei.
Da kommt dann immer no such file or directroy:....
Woran könnte das liegen? Habe alles richtig geschrieben

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 18:01
von rennmaus
C:/Users/chris/Desktop/Deepsky Datenbank/Objekte Das ist mein Pfad, aber am ende steht da immer:
c:/Users/chris/Desktop/Deepsky Datenbank/Deepsky Datenbank.py

Ich verstehs nicht.. Ich meine ich habe den Pfad ja richtig eingegeben oder?

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 18:04
von rennmaus
Traceback (most recent call last):
File "c:/Users/chris/Desktop/Deepsky Datenbank/Deepsky Datenbank.py", line 14, in <module>
file = open (o, 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Iris Nebel'

und bei mir steht:

path = "C:/Users/chris/Desktop/Objekte"
filename = (o)
file = open (o, 'r')
print (file.read)

(habe ich geschrieben)

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 18:06
von __blackjack__
@rennmaus: Das Thema ist ja eigentlich Text in einer Textdatei suchen und jetzt *schreibst* Du plötzlich Daten‽

Bei den Variablennamen ist `file` der einzige der passend ist. `filename` wird an ein Tupel gebunden und nirgends verwendet, hätte man sich also sparen können.

`z` wäre ein guter Name wenn es der Z-Anteil einer Koordinate wäre, aber sicher nicht für den „stem“-Teil eines Dateinamens.

`w`, `e`, `r`, und `t` sind schlechte Namen und da hilft auch nicht wirklich, das es zufällig in der Reihenfolge das Wort ”wert” ergeben würde.

Bei Textdateien sollte man beim öffnen immer explizit die Kodierung angeben. UTF-8 macht da in der Regel am meisten Sinn, es sei denn ein anderes, externes Programm erwartet da etwas anderes.

Das sieht immer noch nach Programmieren durch Raten aus, was nicht funktioniert. Wie kommst Du auf die Idee die `write()`-Methode würde man so aufrufen können?

Bei Textdateien sollte man ans Ende von Zeilen eine Zeilenendezeichen schreiben. Das müsste also in `t` enthalten sein‽

Wobei — falls das Werte durch ein Zeichen getrennt sein sollen, dann bastelt man sich da nichts selbst, sondern verwendet das CSV-Dateiformat, für das es in der Standardbibliothek das `csv`-Modul gibt. Da muss man dann auch auf das `newline`-Argument von `open()` achten. Siehe die Dokumenation vom `csv`-Modul.

Re: In txt Datei nach bestimmten Text suchen und Ausgeben

Verfasst: Sonntag 6. September 2020, 18:57
von rennmaus
Auf write kam ich, da ich es in einem anderen Programm schon verwendet habe und es dort geklappt hat. Das Andere muss ich erst mal anschauem