Seite 1 von 1
file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 21:32
von zar1
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.
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 21:47
von Sirius3
@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.
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 21:50
von zar1
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.
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 22:00
von Sirius3
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))
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 22:07
von zar1
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
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 22:31
von 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.
Re: file im gleichen pfad speichern
Verfasst: Mittwoch 8. Januar 2014, 22:49
von cofi
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.
Re: file im gleichen pfad speichern
Verfasst: Donnerstag 9. Januar 2014, 10:31
von /me
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.