Für diejenigen, die Mac-Terminalbefehle in Python stapelweise ausführen möchten
· Mac OS Sierra 10.12.1 ・ Python 3.5.2
import subprocess
subprocess.call(["command"])
nur das
import subprocess
# hello.Erstellen Sie txt, der Inhalt ist leer
subprocess.call(["touch", "hello.txt"]) # --1
# hello.Schreiben Sie Hallo Welt zu txt
subprocess.call(["echo hello world > hello.txt"], shell = True) # --2
Es gibt zwei Möglichkeiten, es zu schreiben. Im Fall von 1 oben wird das Leerzeichen in UNIX durch "," getrennt.
Die zweite besteht darin, dem ersten Argument eine Zeichenfolge zu geben und shell = True
zu setzen.
Standardmäßig ist es "shell = False" und es wird nicht empfohlen, da es eine Aussage gibt, dass das Setzen auf "True" eine Sicherheitsbedrohung darstellt. Im Moment, wenn ich versuche, einen Befehl wie 2 mit dem Schreibstil 1 auszuführen, weiß ich nicht, wie ich ihn lösen soll, da nur die Zeichen auf dem Terminal kopiert werden.
Als ich zum ersten Mal versuchte, es auszuführen, wurde die Fehlermeldung "Segmentierungsfehler" angezeigt. Ich habe es nicht verstanden, auch wenn ich es gegoogelt habe, und als ich es mit Python3 ausprobiert habe, hat es funktioniert. Wenn Sie python3 installiert haben, können Sie es ausführen, indem Sie "python3 index.py" eingeben. Wenn also dasselbe Phänomen auftritt, führen Sie es bitte aus.
Recommended Posts