Fragen Sie sich, ob sich die Dateioperationen in Pythons Standardbibliothek in "os", "os.path" oder "shutil" befinden?
Die path Klasse im paver.path Modul macht Dateioperationen einfacher als Standard Python Bibliotheken.
Die path Klasse ist auch in paver.easy enthalten. Wenn Sie also von paver.easy importieren *, können Sie sie nur mit path verwenden.
Diese path Klasse definiert eine Methode, die eine Zeichenfolge erbt und die Zeichenfolge als Argument verwendet. Es überschreibt auch die Verknüpfungspfadoperation für den Operator / und definiert verschiedene andere nützliche Methoden.
>>> from paver.easy import *
>>> root = path('/')
>>> root
path(u'/')
>>> root.isdir()
True
>>> root.listdir()
[path(u'/.dbfseventsd'), path(u'/.DocumentRevisions-V100'), path(u'/.DS_Store'), path(u'/.file'), path(u'/.fseventsd'), path(u'/.Spotlight-V100'), path(u'/.SymAVx86QSFile'), path(u'/.Trashes'), path(u'/.vol'), path(u'/Applications'), path(u'/asix_temp'), path(u'/bin'), path(u'/cores'), path(u'/dev'), path(u'/etc'), path(u'/home'), path(u'/Library'), path(u'/mach_kernel'), path(u'/net'), path(u'/Network'), path(u'/opt'), path(u'/private'), path(u'/sbin'), path(u'/System'), path(u'/tmp'), path(u'/Users'), path(u'/usr'), path(u'/var'), path(u'/Volumes'), path(u'/\u30e6\u30fc\u30b5\u3099\u60c5\u5831')]
>>> root / 'usr'
path(u'/usr')
Lesen Sie die Byte-Zeichenfolge in der durch den Pfad .bytes () angegebenen Datei und geben Sie sie zurück, um andere Methoden als Pfadoperationen in os, os.pathund shutilzu vereinfachen Es gibt Methoden, glob () Methoden und .remove_p () Methoden, die keinen Fehler verursachen, auch wenn die Datei nicht existiert, im Gegensatz zu .remove ().
dryrun
Der Fertigerbefehl befindet sich im Trockenlaufmodus mit der Option -n, und die Manipulationsmethoden der Klasse path bewirken eigentlich nichts.
pavement.py
from paver.easy import *
@task
def hello():
path('/').rmtree()
$ paver -n hello
---> pavement.hello
rmtree / () {}
pushd
Dies ist eine Funktion, die ursprünglich in Pythons contextlib enthalten war, aber es gibt einen Kontextmanager namens pushd, der in Kombination mit der with -Anweisung nützlich ist und in paver.easy geht. Sie können es sofort verwenden, weil es ist.
pavement.py
from paver.easy import *
import os
@task
def chdir():
print "cwd: ", os.getcwd()
with pushd('/'):
print "cwd: ", os.getcwd()
print "cwd: ", os.getcwd()
$ paver chdir
---> pavement.chdir
cwd: /Users/inada-n/paver
cd /
cwd: /
cd /Users/inada-n/paver
cwd: /Users/inada-n/paver
Recommended Posts