Path
Verfasst: Samstag 27. Mai 2006, 07:34
Vor lauter Arbeiten mit dem Filesystem hing mir Python schon fast raus. Ich hab mir aus diesem Grund eine netter Klasse geschrieben, die hoffentlich alle diese Bereiche abdeckt: http://trac.pocoo.org/repos/sandbox/path/path.py
Da es keine wirklich gute Docu atm gibt, hier mal ein Doctest:
Die wichtigsten Sachen werden hier glaub ich erklärt. Zumindest was Dateien lesen/schreiben angeht. "r", "w", "a" Modi werden mit codecs.open geöffnet, ergo muss man das charset übergeben, wenn man es nicht tut nimmer er 'utf-8' an. genauers gibts help(Path.open) aus.
Alle wichtigen Dateieigenschaften sind properties und geben auch sinnvolle Werte aus. Das heißt zb. datetime Objekte anstatt unix timestamps.
Ich hoffe es kann auch auser mir noch jemand brauchen, bei Fehlern bescheid sagen.
//EDIT: jetzt kann man auch mit path rechnen:

Da es keine wirklich gute Docu atm gibt, hier mal ein Doctest:
Code: Alles auswählen
>>> from path import Path
>>> test = Path('~/testfile.txt')
>> test
Path('/home/blackbird/testfile.txt')
>>> test.exists
True
>>> test.delete()
>>> test.exists
False
>>> f = test.open('w')
>>> f.write(u'Hello Wörld')
>>> f.close()
>>> test.exists
True
>>> f = test.open('rb')
>>> f.read()
'Hello W\xc3\xb6rld'
>>> f.close()
>>> f = test.open('r')
>>> f.read()
u'Hello W\xf6rld'
>>> f.close()
>>> test.mtime
datetime.datetime(2006, 5, 27, 8, 31, 26)
>>> test.delete()
Alle wichtigen Dateieigenschaften sind properties und geben auch sinnvolle Werte aus. Das heißt zb. datetime Objekte anstatt unix timestamps.
Ich hoffe es kann auch auser mir noch jemand brauchen, bei Fehlern bescheid sagen.
//EDIT: jetzt kann man auch mit path rechnen:
Code: Alles auswählen
>>> from path import Path
>>> fn = Path('myfile.txt')
>>> fn + 5
Path('/home/blackbird/Developement/sandbox/path/myfile5.txt')
>>> fn + 5 - 9
Path('/home/blackbird/Developement/sandbox/path/myfile0.txt')
>>> fn + 5 - 2
Path('/home/blackbird/Developement/sandbox/path/myfile3.txt')
