[PYTHON] Script avec les opérations de fichier de paver

Vous vous demandez si les opérations sur les fichiers dans la bibliothèque standard de Python se trouvent dans «« os »,« «os.path» ou «shutil»?

La classe path '' dans le module paver.path '' facilite les opérations sur les fichiers que les bibliothèques Python standard.

Comment utiliser

La classe path est également incluse dans paver.easy, donc si vous faites à partir de paver.easy import * '', vous ne pouvez l'utiliser qu'avec path``.

Cette classe path '' définit une méthode qui hérite d'une chaîne et prend la chaîne comme argument. Il remplace également l'opération de chemin de jointure sur l'opérateur / '' et définit diverses autres méthodes utiles.

>>> 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')

Pour des méthodes pratiques autres que les opérations de chemin dans os``, os.path, shutil, lisez et retournez la chaîne d'octets dans le fichier spécifié par le chemin .bytes () Il existe des méthodes '', des méthodes glob () '' et des méthodes .remove_p () '' qui ne provoquent pas d'erreur même si le fichier n'existe pas, contrairement à .remove () ''.

dryrun

La commande paver est en mode dryrun avec l'option -n, et les méthodes de manipulation de la classe path ne font rien.

pavement.py


from paver.easy import *

@task
def hello():
    path('/').rmtree()
$ paver -n hello
---> pavement.hello
rmtree / () {}

pushd C'est une fonctionnalité trouvée à l'origine dans contextlib '' de Python, mais il existe un gestionnaire de contexte appelé pushd '' qui est utile en combinaison avec l'instruction with '' et va dans paver.easy ''. Il est prêt à l'emploi.

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

Script avec les opérations de fichier de paver
Opération de fichier avec open - "../"
Script avec la définition de la commande Paver
Script avec des commandes externes au pavé
Effectuer des opérations logiques à l'aide de Perceptron
Automatisation des opérations à distance avec Fabric
Résumé des opérations souvent effectuées avec asyncpg