Appeler des commandes depuis Python (édition Windows)

De base

Il était courant d'utiliser os.system, mais il semble moderne d'utiliser un sous-processus. Référence: http://stackoverflow.com/questions/4813238/difference-between-subprocess-popen-and-os-system

import subprocess

cmd = 'myprogram myargs'
returncode = subprocess.call(cmd)

L'appel est suffisant pour les appels simples, mais il semble préférable d'utiliser Popen à des fins plus générales. Selon les références suivantes, Popen a l'avantage de ne pas bloquer l'exécution de la commande (= passer à la ligne suivante sans attendre la fin de la commande), et call est une implémentation de Popen avec un bloc de commande. Il semble. Référence: http://stackoverflow.com/questions/7681715/whats-the-difference-between-subprocess-popen-and-call-how-can-i-use-them

import subprocess

cmd = 'myprogram myargs'
returncode = subprocess.Popen(cmd)

Mise en garde

Cependant, cela ne vous permet pas d'appeler les commandes intégrées de Windows telles que dir et echo. Lorsque j'essaye de l'appeler, j'obtiens l'erreur "Le fichier spécifié est introuvable". Référence: http://stackoverflow.com/questions/19819417/how-to-use-subprocess-in-windows

La solution est d'ajouter shell = True.

import subprocess

cmd = 'dir .'
returncode = subprocess.Popen(cmd, shell=True)

Comme mentionné dans le matériel de référence ci-dessus, si vous ajoutez shell = True sous Windows, l'invite de commande cmd.exe est en fait appelée et la commande est exécutée dessus. Si cette option n'est pas ajoutée ou si shell = False est spécifié, l'appel ne se produira que si le nom de fichier réel avec l'extension est spécifié.

Plus d'attention

La plupart des gens n'en ont probablement pas besoin, mais comme mentionné ci-dessus, puisque c'est l'invite de commande qui est appelée avec shell = True, diverses commandes shell qui peuvent être exécutées sur Powershell ne peuvent pas être appelées à partir d'un sous-processus.

Recommended Posts

Appeler des commandes depuis Python (édition Windows)
Appuyez sur une commande en Python (Windows)
Exécuter des commandes depuis Python
Appel de scripts Python à partir de Python intégré en C ++ / C ++
Appeler CPLEX depuis Python (DO cplex)
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Appeler le code généré par Cython à partir de C / C ++ (version Windows)
Comment exécuter un fichier Python à une invite de commande Windows 10
Appeler C depuis Python avec DragonFFI
Toucher les objets Python d'Elixir
Installez xgboost (version python) sur Windows
Appeler popcount depuis Ruby / Python / C #
python / Créer un dict à partir d'une liste.
Python --Fonction d'appel dynamique à partir d'une chaîne
Appelez python de nim avec Nimpy
Appeler C / C ++ depuis Python sur Mac
Appeler le langage C depuis Python (python.h)
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Téléchargement par lots d'images à partir d'une URL spécifique avec la version modifiée de python
Appelez dlm depuis python pour exécuter un modèle de régression à coefficient variable dans le temps
Tout, de la création d'un environnement Python à son exécution sous Windows
"Programmation Python AI" à partir de 0 pour Windows
# 5 [python3] Extraire des caractères d'une chaîne de caractères
Création d'un environnement Python 3.6 avec Windows + PowerShell
[Python] [Windows] Faites une capture d'écran avec Python
Créer un fichier deb à partir d'un package python
Générer une classe à partir d'une chaîne en Python
Utiliser Django à partir d'un script Python local
Manipuler des tables BigQuery à partir d'un client Python
Envoyer un message de Slack à un serveur Python
Exécuter des scripts Python à partir d'applications C # GUI
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment ouvrir un navigateur Web à partir de python
Créer un tableau C à partir d'une feuille Python> Excel
Python sur Windows
Créez simplement un environnement d'exécution Python 3 sous Windows
Construction de l'environnement Python (Anaconda + VSCode) @ Windows10 [version janvier 2020]
environnement windows python
Un mémorandum sur l'appel de Python à partir de Common Lisp
J'ai créé une image Docker qui peut appeler FBX SDK Python à partir de Node.js
Créer une nouvelle tâche Todoist à partir d'un script Python
Installation de Python (Windows)
Comment générer un objet Python à partir de JSON
Compilation croisée de la version Windows à partir de nim of arch | linux
Écrire une note sur la version python de python virtualenv
Charger et exécuter la commande depuis yml avec python
"Kit Python" qui appelle des scripts Python depuis Swift
MeCab de Python
Exporter la version Python3 OpenCV KeyPoint dans un fichier
Appelez la bibliothèque Python pour la normalisation de texte depuis MATLAB
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Exécutez des fichiers Python à partir de HTML en utilisant Django
Pièges piégés lors de l'exécution d'exécutables Windows Python