Aufrufbefehle von Python (Windows Edition)

Basic

Früher war es üblich, os.system zu verwenden, aber es scheint modern zu sein, Unterprozesse zu verwenden. Referenz: http://stackoverflow.com/questions/4813238/difference-between-subprocess-popen-and-os-system

import subprocess

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

Anruf ist für einfache Anrufe ausreichend, aber es scheint besser, Popen für allgemeinere Zwecke zu verwenden. Gemäß den folgenden Referenzen hat Popen den Vorteil, die Befehlsausführung nicht zu blockieren (= mit der nächsten Zeile fortzufahren, ohne auf den Abschluss des Befehls zu warten), und call ist eine Implementierung von Popen mit einem Befehlsblock. Es scheint. Referenz: 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)

Hinweis

Auf diese Weise können Sie jedoch keine in Windows integrierten Befehle wie dir und echo aufrufen. Wenn ich versuche, es aufzurufen, erhalte ich die Fehlermeldung "Die angegebene Datei wurde nicht gefunden". Referenz: http://stackoverflow.com/questions/19819417/how-to-use-subprocess-in-windows

Die Lösung besteht darin, shell = True hinzuzufügen.

import subprocess

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

Wie im obigen Referenzmaterial erwähnt, wird beim Hinzufügen von shell = True unter Windows die Eingabeaufforderung cmd.exe tatsächlich aufgerufen und der Befehl darauf ausgeführt. Wenn diese Option nicht hinzugefügt wird oder shell = False angegeben ist, wird der Aufruf nur ausgeführt, wenn der tatsächliche Dateiname einschließlich der Erweiterung angegeben ist.

Weitere Aufmerksamkeit

Die meisten Leute brauchen es wahrscheinlich nicht, aber wie oben erwähnt, können verschiedene Shell-Befehle, die auf Powershell ausgeführt werden können, nicht aus dem Unterprozess aufgerufen werden, da es sich um die Eingabeaufforderung handelt, die mit shell = True aufgerufen wird.

Recommended Posts

Aufrufbefehle von Python (Windows Edition)
Drücken Sie einen Befehl in Python (Windows)
Führen Sie Befehle aus Python aus
Rufen Sie Python-Skripte aus Embedded Python in C ++ / C ++ auf
Rufen Sie CPLEX von Python aus auf (DO cplex)
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
Rufen Sie den von Cython aus C / C ++ (Windows-Version) generierten Code auf.
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
Rufen Sie C von Python mit DragonFFI auf
Berühren Sie Python-Objekte in Elixir
Installieren Sie xgboost (Python-Version) unter Windows
Rufen Sie popcount von Ruby / Python / C # auf
Python / Machen Sie ein Diktat aus einer Liste.
Python - Dynamische Aufruffunktion von String
Rufen Sie Python von Nim mit Nimpy auf
Rufen Sie C / C ++ von Python auf dem Mac auf
Rufen Sie die c-Sprache von Python aus auf (python.h)
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
Batch-Download-Bilder von einer bestimmten URL mit Python Modified-Version
Rufen Sie dlm von Python aus auf, um ein zeitvariables Koeffizientenregressionsmodell auszuführen
Alles vom Erstellen einer Python-Umgebung bis zur Ausführung unter Windows
"Python AI Programmierung" ab 0 für Windows
# 5 [python3] Extrahiert Zeichen aus einer Zeichenfolge
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python
Erstellen Sie eine Deb-Datei aus einem Python-Paket
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Verwenden Sie Django aus einem lokalen Python-Skript
Bearbeiten Sie BigQuery-Tabellen von einem Python-Client aus
Senden Sie eine Nachricht von Slack an einen Python-Server
Führen Sie Python-Skripte in C # -GUI-Anwendungen aus
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
So öffnen Sie einen Webbrowser über Python
Erstellen Sie ein C-Array aus einer Python> Excel-Tabelle
Python unter Windows
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Aufbau einer Python-Umgebung (Anaconda + VSCode) @ Windows10 [Version Januar 2020]
Python Windows-Umgebung
Ein Memorandum zum Aufrufen von Python aus Common Lisp
Ich habe ein Docker-Image erstellt, das FBX SDK Python von Node.js aus aufrufen kann
Erstellen Sie eine neue Todoist-Aufgabe aus Python Script
Python-Installation (Windows)
So generieren Sie ein Python-Objekt aus JSON
Kompilieren Sie die Windows-Version von nim von arch | linux
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
"Python Kit", das Python-Skripte von Swift aufruft
MeCab von Python
Exportieren Sie PythonC Version OpenCV KeyPoint in eine Datei
Rufen Sie die Python-Bibliothek zur Textnormalisierung in MATLAB auf
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Führen Sie Python-Dateien mit Django aus HTML aus
Traps beim Ausführen von ausführbaren Python Windows-Dateien