Dies ist die Support Website des Buches:: Das Python Praxisbuch Der große Profi-Leitfaden für Programmierer Farid Hajji Addison Wesley / Pearson Education ISBN 978-3-8273-2543-3 (Sep 2008), 1298 Seiten. ******************************** 9. Dateien und das Dateisystem ******************************** Dateien ======= Die Funktion open ----------------- URLs: * `Dokumentation der Python-Funktion open `_ * `Manpage der C-Funktion fopen `_ * `Manpage der C-Funktion fseek `_ * `Manpage des Programms chmod `_ Screenshots: * `Die C-Synopsis der Funktion open `_ * `Was die Modi der Funktion open bedeuten `_ Die Funktion close ------------------ Die Funktion ``show_file``:: def show_file(path_to_file): "Show content of a file" f = open(path_to_file, 'r') print f.read() URLs: * `Manpage des Programms sysctl (BSD-spezifisch) `_ Textdateien lesen und schreiben ------------------------------- Anwendung: Sortieren nach Wortenden ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ URLs: * `Manpage des Programms rev `_ * `Manpage des Programms sort `_ .. literalinclude:: ../att/files/revwordlist.py `revwordlist.py `_ .. literalinclude:: ../att/files/revwordlist2.py `revwordlist2.py `_ Binärdateien lesen und schreiben -------------------------------- URLs: * `Manpage der C-Funktion open `_ * `Manpage der C-Funktion read `_ * `Manpage der C-Funktion write `_ * `Manpage der C-Funktion lseek `_ Anwendung: Stückweises Kopieren von Dateien ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. literalinclude:: ../att/files/chunkwise-copy.py `chunkwise-copy.py `_ Anwendung: Auslesen von mp3 ID3v1-Tags ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. literalinclude:: ../att/files/parseid3.py `parseid3.py `_ RAM-Dateien mit StringIO ------------------------ Ein Beispiel für ``cStringIO``:: from xml.etree.cElementTree import parse from cStringIO import StringIO xml_data = 'DoeJohn' mf = StringIO(xml_data) et = parse(mf) mof = StringIO() et.write(mof, encoding='UTF-8') s = mof.getvalue() print s Screenshots: * `Die Dokumentation des StringIO-Moduls `_ Memory mapped Dateien mit mmap ------------------------------ URLs: * `Manpage der C-Funktion mmap `_ * `Manpage des Programms hexdump `_ Screenshots: * `Die C-Funktion mmap nach POSIX `_ * `Die Dokumentation des mmap-Moduls (Windows) `_ * `Die Dokumentation des mmap-Moduls (Unix) `_ Spezielle Dateiformate ---------------------- gzip und bzip2 ^^^^^^^^^^^^^^ URLs: * `Manpage des Programms gzip `_ * `Manpage des Programms bzip2 `_ zip und tar ^^^^^^^^^^^ * `Manpage des Programms tar `_ Das Dateisystem =============== URLs: * `File and Directory Access (Python Doku) `_ Dateien verschieben oder löschen -------------------------------- Metadaten einer Datei --------------------- Plattformunabhängige Metadaten mit os.path.* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Plattformabhängige Metadaten mit os.stat (Unix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ URLs: * `Manpage der C-Funktion lstat `_ .. literalinclude:: ../att/files/statfile.py `statfile.py `_ Das Dateisystem durchlaufen --------------------------- os.listdir ^^^^^^^^^^ glob.glob ^^^^^^^^^ Rekursives Durchlaufen mit os.walk ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Die Funktion ``os.walk`` wird typischerweise so verwendet:: import os import os.path for root, dirs, files in os.walk('/path/to/files', topdown=True): # Proceed all files: for file_name in files: proceed_file(os.path.join(root, file_name)) # Proceed all (sub-)directories: for dir_name in dirs: proceed_directory(os.path.join(root, dir_name)) Anwendung: Prüfsummen ^^^^^^^^^^^^^^^^^^^^^ .. literalinclude:: ../att/files/fingerprint.py `fingerprint.py `_ .. literalinclude:: ../att/files/fpdir.py `fpdir.py `_ Das shutil-Modul ---------------- Screenshots: * `Die Dokumentation des shutil-Moduls `_ Zusammenfassung ===============