[PYTHON] Skripterstellung mit externen Fertigern

Der am wenigsten skriptsprachliche Teil von Python ist das Ärgernis, einen Unterprozess importieren zu müssen; subprocess.call ("ls -l"), um einen externen Befehl auszuführen.

Paver definiert eine sh () Funktion, die die Ausführung externer Befehle erleichtert. Dies kann auch mit aus paver.easy import * importiert werden.

Wie benutzt man

Wenn Sie sh ("ls -l /") schreiben, wird der Befehl über die Shell ausgeführt.

Erfassung

Standardmäßig wird die Ausgabe des ausgeführten Befehls wie in der Standardausgabe angezeigt, wenn Sie jedoch "capture = True" angeben

pavement.py


from paver.easy import *
import os

@task
def list():
    ret = sh("ls -l /", capture=True)
    print(len(ret.splitlines()))
$ paver list
---> pavement.list
ls -l /
22

dryrun Wie die Methoden der Klasse path zeigt die Funktion sh () den Befehl nur an und führt ihn nicht aus, wenn der Fertiger im Trockenlaufmodus ausgeführt wird.

pavement.py


from paver.easy import *

@task
def barusu():
    sh("rm -rf /")
$ paver -n barusu
---> pavement.barusu
rm -rf /

Recommended Posts

Skripterstellung mit externen Fertigern
Skripterstellung mit Fertigerbefehlsdefinition
Führen Sie regelmäßig Befehle mit crontab aus
Befehle beim Erstellen von SNS mit Django
Behandeln Sie externe Befehle wie Funktionen mit sh