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