file im gleichen pfad speichern

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
zar1
User
Beiträge: 39
Registriert: Samstag 28. Dezember 2013, 01:08

hallo,
ich habe ein programm geschrieben wo jemand etwas eingibt und das wird dann in ein textdokument gespeichert und später wieder aufgerufen.
ich habe das so gemacht:

Code: Alles auswählen

f = open("C:\\important\\Databank.txt","w")
eingabe = input()
f.write(eingabe)
f.write(" ")
eingabe2 = input()
f.write(eingabe2)
f.close()
nun möchte ich aber,dass wenn ein anderer das programm downloadet und etwas eingibt es automatisch im ordner von dem programm gespeichert wird.

Edit(cofi): Code formatiert.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@zar1: was hat das Problem mit dem Downloaden zu tun??? Die Datei des aktuellen Modules steht in der Variable »__file__«. Daraus kannst Du dann den Pfad ermitteln.
Du solltest with und String-Formatierung benutzen, der Funktion einen aussagekräftigeren Namen geben und nur eine Aufgabe erfüllen, entweder Eingaben einlesen oder Schreiben.
zar1
User
Beiträge: 39
Registriert: Samstag 28. Dezember 2013, 01:08

was genau meinst du mit >>_file_<<.

Also Ich möchte wenn jemand das downloadet und seine daten da eingibt es in dem gleichen ordner gespeichert wird wo auch mein programm drin ist den ich kann ja schlecht schreiben wo genau die datei txt datei gespeichert werden soll denn ich weiß ja nicht wo er mein programm hindownloaden wird bzw. wie seine Festplatten aussehen. darum möchte ich das sich die txt datei dann automatisch im gleichen ornder wie das programm selber speichert.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Code: Alles auswählen

with open(os.path.join(os.path.dirname(__file__), 'datei.txt'), 'w') as output:
    output.write('{} {}\n'.format(username, someting_else))
zar1
User
Beiträge: 39
Registriert: Samstag 28. Dezember 2013, 01:08

kannst du vielleicht das was du gepostet hast mit meinen post verknüpfen den ich blick ehrlich gesagt nicht so ganz durch deinen code durch
BlackJack

@zar1: Was soll denn da verknüpft werden? So würde man das aus dem ersten Beitrag schreiben. Mit dem Zusatz, dass es nicht an einen festen Pfad sondern in den Pfad in dem auch das Modul liegt, gespeichert wird. Also das was Du haben wolltest. Die einzelnen Schlüsselwörter und Funktionen kannst Du in der Dokumentation nachlesen.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Zur Ergaenzung, so wuerde man deinen Code schreiben:

Code: Alles auswählen

with open("C:\\important\\Databank.txt","w") as f:
    eingabe = input()
    eingabe2 = input()
    f.write("{} {}\n".format(eingabe, eingabe2))
Und fuer die Zukunft: Bitte benutze [ python ] Tags fuer Python-Code.
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

zar1 hat geschrieben:kannst du vielleicht das was du gepostet hast mit meinen post verknüpfen den ich blick ehrlich gesagt nicht so ganz durch deinen code durch
In __file__ findest du den Pfad zum aktuellen Programm. Schreib in dein Programm einfach mal print(__file__) und schau dir das Ergebnis an.

Wenn du jetzt die Funktion os.path.dirname verwendest, dann bekommst du den aktuellen Pfad in dem dein Programm liegt.

Wenn du dann an den ermittelten Pfad den Dateinamen für die Datendatei anhängen willst, dann machst du das systemübergreifend korrekt, indem du os.path.join verwendest.
Antworten