Pour ceux qui souhaitent exécuter par lots des commandes de terminal Mac en Python
· Mac OS Sierra 10.12.1 ・ Python 3.5.2
import subprocess
subprocess.call(["command"])
seulement ça
import subprocess
# hello.Créer un txt, le contenu est vide
subprocess.call(["touch", "hello.txt"]) # --1
# hello.Écrivez bonjour le monde en txt
subprocess.call(["echo hello world > hello.txt"], shell = True) # --2
Il y a deux façons de l'écrire. Dans le cas de 1 ci-dessus, l'espace vide sous UNIX est séparé par ",".
Le second est de donner une chaîne de caractères au premier argument et de définir shell = True
.
Par défaut, il s'agit de shell = False
, et ce n'est pas recommandé car il y a une déclaration selon laquelle le définir sur True est une menace pour la sécurité.
Cependant, pour le moment, quand j'essaye d'exécuter une commande comme 2 avec le style d'écriture de 1, je ne sais pas comment le résoudre car seuls les caractères sont copiés sur le terminal.
Lorsque j'ai essayé de l'exécuter pour la première fois, j'ai reçu le message d'erreur «Erreur de segmentation».
Je n'ai pas compris même si je l'ai recherché sur Google, et quand je l'ai essayé avec python3, cela a fonctionné. Si vous avez installé python3, vous pouvez l'exécuter en tapant python3 index.py
, donc si vous rencontrez le même phénomène, veuillez l'exécuter.
Recommended Posts