In txt Datei nach bestimmten Text suchen und Ausgeben

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.
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Muss da ein Plus anstatt des Kommas?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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?
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Naja, ich will dass es die eingegebenen Daten abspeichert, sodass ich sie später über python wieder abrufen kann.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Tut mir leid, wenn ich mich gerade ein bisschen blöd anstelle, aber ich habe gerade keine Ahnung, welches dann der richtige Modus ist...
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Wenn du in eine Datei schreiben möchtest, nimmst du den Modus 'w'. Siehe auch: https://docs.python.org/3/library/functions.html#open
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Ich glaube jetzt klappts!!
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

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
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

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?
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

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)
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

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
Antworten