os
Prozesse
Befehl | Bedeutung |
os.environ['HOME'] | Hauptordner des Benutzers |
os.getpid() | Prozess-ID |
os.system(Kommando) |
a) os.system(program) # synchron b) subprocess.call([program, "parameter"]) # synchron c)os.popen("notepad.exe") # asynchron in Python, synchron in QGis d) os.startfile(programm) # asynchron e) os.spawnl(mode, path, ...) f) os.spawnle(mode, path, ..., env) g) os.spawnlp(mode, file, ...) ih os.spawnlpe(mode, file, ..., env) ji os.spawnv(mode, path, args) j) os.spawnve(mode, path, args, env) k) os.spawnvp(mode, file, args) l) os.spawnvpe(mode, file, args, env)¶ Beispiele: os.spawnv(os.P_NOWAIT, "c:/windows/system32/cmd.exe",['/K', '']) os.system("mkdir v1") # Entspricht einem DOS-Befehl |
os.popen("ls *.txt") os.popen("dir *.txt") |
Entspricht dem $-Befehl |
linebreaker Zeilentrenner \r\n oder \n |
os.linesp |
Pathseparator | os.pathsep |
Dateisystem
Funktion | Bedeutung |
os.environ['HOME'] | Hauptordner des Benutzers |
Befehl | Bedeutung |
access(path,mode) |
Prüft die Rechte der Datei/Ordner mit dem Modus F_OK Existiert der Pfad R_OK Leserechte W_OK Schreibrechte X_OK Ausführbare rechte |
chdir(path) |
wechselt das Verzeichnis Siehe Beispiel "Fielmanager1.py" |
getcwd() | siehe pwd, get Current Working Directory |
getcwdb() | Wie getcwd, Rückgabe als Byte-Array |
chmod(path, mode) | siehe Unix-Befehl |
listdir(path) |
Liste der Dateien und Ordnern Siehe Beispiel "Fielmanager1.py" |
mkdir(path[, mode]) | Erzeugt ein Verzeichnis |
makedirs(path[, mode]) | Erzeugt auch komplette Pfade |
remove(path) | Löscht eine Datei |
removedirs(path) | Löscht alle Ordner, sofern diese leer sind |
rename(src, dest) | Umbenennen |
renames(src, dest) | Wie rename, legt aber eventuelle Verzeichnisse des Zielpfades an. Außerdem werden in src-Pfad leere Ordner gelöscht. |
rmdir(path) | Löscht den leeren Ordner |
Beispiel eines Filemanagers
# coding=utf8 import tkinter from tkinter import messagebox import os import os.path class MyApp(tkinter.Frame): def __init__(self, master=None): tkinter.Frame.__init__(self, master) self.pack(expand=True, fill="both") self.setGUI() print(os.getcwd()) def setGUI(self): # JPanel fuer ui-Elemente frame1 = tkinter.Frame(self) frame1.pack(expand=True, fill="both", side="top", padx="5", pady="5") frameButton = tkinter.Frame(self) frameButton.pack(fill="x", side="bottom", padx="5", pady="5") sb = tkinter.Scrollbar(frame1) sb.pack(fill="y",side="right") self.listbox = tkinter.Listbox(frame1,selectmode="single") self.listbox.pack(fill="both",expand=True) self.listbox["yscrollcommand"] = sb.set sb["command"]=self.listbox.yview self.path = os.getcwd() self.insertDirectories() self.bnEsc = tkinter.Button(frameButton) self.bnEsc["text"] = "Ende" self.bnEsc["command"] = self.quit self.bnEsc.pack(side="right") self.bnAction = tkinter.Button(frameButton) self.bnAction["text"] = "Change Dir" self.bnAction["command"] = self.cdClick self.bnAction.pack(side="right",padx="5") def insertDirectories(self): items = os.listdir(self.path) self.listbox.delete(0,"end") self.listbox.insert("end","..") for item in items: if os.path.isdir(self.path+"\\"+item): print("verz:",item) dir(self.path+item+"\\") self.listbox.insert("end",item) def cdClick(self): index = self.listbox.curselection() dir = self.listbox.get(index) if dir=="..": os.chdir("..") else: os.chdir(dir) self.path = os.getcwd() messagebox.askokcancel( "Meldung", dir+"\r\n"+self.path) self.insertDirectories() root = tkinter.Tk() root.title("Filemanager") root.geometry("250x300") app = MyApp(root) app.mainloop()
