Seite 1 von 1

Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 15:25
von MightyM
Hey all,

Mein Problem:
Mein Programm bietet die funktion dateien zu löschen (das ist nicht die Hauptfunktion :lol:), jedoch kenn ich dafür nur den Befehl "os.system()" welcher ja einfach alles was in die Klammer geschrieben wird in der Kommandozeile ausführt. Das Funktioniert auch alles super nur nachdem sich die Kommandozeile kurz geöffnet und wieder geschlossen hat, ist das Python Programm im Hintergrund und man muss es wieder hervorholen. Das finde ich nicht sehr Benutzerfreundlich, deshalb: Kennt jemand eine Lösung, vlt. einen anderen Befehl?

Code:

Code: Alles auswählen

from os import system, chdir

chdir(self.WorkPath)
system("del FILENAME")
Gruss und danke im Voraus
Mike

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 15:32
von EyDu
Hallo.

Du hast du kennst du bereits das os-Modul, dort gibt es auch eine Funtkion zum Löschen von Dateien. Dann musst du dich nicht mit so uneleganten und systemspezifischen Dingen wie ``system`` quälen. Außerdem ist, das ändern des Arbeitsverzeichnis mittels ``chdir`` keine besonders gute Idee, da du damit am globalen Status der Anwendung herumwerkelst. Setze lieber die Pfade mittels ``os.path.join`` zusammen.

Sebastian

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 15:53
von MightyM
Okay die Funktion habe ich gefunden, was mir grundsätzlich das chdir erspart.

Was du aber mit deinem zweiten Satz meinst nimmt mich trotzdem wunder, 'os.path.join' verbindet ja nur 2 Pfade (wenn ich das richtig verstanden habe), was hat das denn mit dem aktuellen Arbeitsverzeichnis zu tun?

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 15:57
von EyDu
Du wechselst bei deinem Code das Arbeitsverzeichnis um dann die Datei zu löschen. Den Aufruf soltlest du dir sparen, indem du den Pfad der zu löschenden Datei zusammensetzt:

Code: Alles auswählen

os.remove(os.path.join(workingdirectory, filename))
.

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 16:08
von MightyM
Achso, wusste nicht das du dich schon auf die remove Funktion beziehst, das ist natürlich klar. Aber das chdir war vorher für die Funktion os.system() bzw. die Kommandozeile nötig.

Bisher hab ich meine Pfade jedoch so zusammengesetzt:

Code: Alles auswählen

os.remove("%s\\%s" %(workpath,filename)
sollte eigendlich kein Unterschied machen nehm ich jetzt mal an? :K

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 16:14
von EyDu
Doch, das macht einen Unterschied. Mittels os.path.join ist man zum Beispiel vom Betriebssystem unabhängig

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 16:19
von MightyM
auch wenn z.B. unter der Variable workpath der Pfad 'C:\\Beispielordner1\\Beispielorder2' gespeichert ist?

Re: Datei löschen und Fokus auf Python behalten

Verfasst: Dienstag 20. März 2012, 16:41
von deets
@MightyM

Nein, natuerlich nicht. Aber der Code den du schreibst ist zumindest unabhaengig. Darum sollte man sich das gleich angewoehnen.