[PYTHON] Skripterstellung mit Paver-File-Vorgängen

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.

Wie benutzt man

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

Skripterstellung mit Paver-File-Vorgängen
Dateivorgang mit open - "../"
Skripterstellung mit Fertigerbefehlsdefinition
Skripterstellung mit externen Fertigern
Führen Sie logische Operationen mit Perceptron aus
Automatisierung von Remote-Operationen mit Fabric
Zusammenfassung der häufig mit asyncpg ausgeführten Vorgänge