Maison développement back-end Tutoriel Python Comment utiliser le module de sous-processus pour exécuter des commandes externes dans Python 3.x

Comment utiliser le module de sous-processus pour exécuter des commandes externes dans Python 3.x

Jul 30, 2023 pm 05:01 PM
python subprocess 执行外部命令

Comment utiliser le module de sous-processus pour exécuter des commandes externes dans Python 3.x

En Python, nous devons souvent exécuter des commandes système, telles que l'exécution d'autres programmes, l'exécution de commandes shell, etc. Python fournit le module subprocess, qui nous permet d'appeler facilement des commandes externes et d'obtenir leur sortie.

Cet article expliquera comment utiliser le module de sous-processus dans Python 3.x pour exécuter des commandes externes et fournira un exemple de code.

  1. Exécutez des commandes externes via la fonction subprocess.run()
    La fonction subprocess.run() est une nouvelle fonction dans Python 3.5 et les versions ultérieures. Elle est utilisée pour exécuter des commandes externes spécifiées.

Voici un exemple simple qui montre comment utiliser la fonction subprocess.run() pour exécuter une commande externe et obtenir le résultat de la commande :

import subprocess

# 执行外部命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)

# 获取命令的输出
output = result.stdout

# 输出到控制台
print(output) 
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé la fonction subprocess.run() pour exécuter la commande ls -l. Ici, nous utilisons deux paramètres pour contrôler l'exécution de la commande : capture_output=True signifie capturer la sortie de la commande dans l'objet résultat, et text=True signifie renvoyer la sortie sous forme de texte. ls -l命令。这里我们使用了两个参数来控制命令的执行:capture_output=True 表示将命令的输出捕获到result对象中,text=True 表示将输出以文本形式返回。

  1. 通过subprocess.Popen()函数执行外部命令
    subprocess模块还提供了Popen类,它是一个更底层的接口,可以用来执行更复杂的命令,并对命令的输入/输出进行更精细的控制。

下面是一个示例,演示如何使用subprocess.Popen()函数执行外部命令,并对命令的输出进行逐行读取:

import subprocess

# 执行外部命令
process = subprocess.Popen(['ping', 'www.baidu.com'], stdout=subprocess.PIPE, text=True)

# 逐行读取输出
for line in process.stdout:
    print(line.strip())
Copier après la connexion

在上面的代码中,我们使用subprocess.Popen()函数执行了ping www.baidu.com命令,并将命令的输出通过stdout管道返回。我们通过遍历stdout管道逐行读取命令的输出,并打印到控制台。

需要注意的是,当使用Popen类执行命令时,并不会自动等待命令执行完毕。如果需要等待命令执行完毕,可以通过process.wait()函数来实现。

  1. 通过subprocess.call()函数执行外部命令
    subprocess模块还提供了call函数,用于执行外部命令,并等待其执行完毕。

下面是一个示例,演示如何使用subprocess.call()函数执行外部命令,并获取命令的返回码:

import subprocess

# 执行外部命令
return_code = subprocess.call(['git', 'clone', 'https://github.com/username/repo'])

# 输出返回码
print(return_code)
Copier après la connexion

在上面的代码中,我们使用subprocess.call()函数执行了git clone

    Exécutez des commandes externes via la fonction subprocess.Popen()

    Le module de sous-processus fournit également la classe Popen, qui est une interface de niveau inférieur qui peut être utilisée pour exécuter des commandes plus complexes et contrôler le commande Entrée/sortie pour un contrôle plus fin.


    Voici un exemple qui montre comment utiliser la fonction subprocess.Popen() pour exécuter une commande externe et lire le résultat de la commande ligne par ligne :

    rrreee

    Dans le code ci-dessus, nous utilisons le subprocess.Popen( ) fonction à exécuter La commande ping www.baidu.com est exécutée et la sortie de la commande est renvoyée via le tube stdout. Nous lisons la sortie de la commande ligne par ligne en parcourant le tube stdout et l'imprimons sur la console.

    🎜Il convient de noter que lors de l'utilisation de la classe Popen pour exécuter une commande, elle n'attendra pas automatiquement que la commande soit exécutée. Si vous devez attendre que la commande soit exécutée, vous pouvez utiliser la fonction process.wait() pour y parvenir. 🎜
      🎜Exécutez des commandes externes via la fonction subprocess.call()🎜Le module de sous-processus fournit également la fonction d'appel, qui est utilisée pour exécuter des commandes externes et attendre la fin de son exécution. 🎜🎜🎜Voici un exemple qui montre comment utiliser la fonction subprocess.call() pour exécuter une commande externe et obtenir le code retour de la commande : 🎜rrreee🎜Dans le code ci-dessus, nous avons exécuté le en utilisant le sous-processus .call() fonction git clone commande et a passé l'adresse de l'entrepôt en paramètre. Après avoir exécuté une commande en appelant la fonction subprocess.call(), le programme sera bloqué jusqu'à ce que la commande soit exécutée. 🎜🎜Ici, vous pouvez obtenir le code de retour de la commande via return_code, et vous pouvez juger si la commande a été exécutée avec succès en fonction du code de retour. 🎜🎜Résumé : 🎜Grâce au module de sous-processus, nous pouvons facilement exécuter des commandes externes en Python et obtenir la sortie et le code de retour de la commande. Cet article présente trois méthodes couramment utilisées : subprocess.run(), subprocess.Popen() et subprocess.call(). Selon les différents besoins, choisissez la méthode appropriée pour exécuter des commandes externes. 🎜🎜J'espère que cet article vous aidera à comprendre comment utiliser le module de sous-processus pour exécuter des commandes externes dans Python 3.x. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le plan Python de 2 heures: une approche réaliste Le plan Python de 2 heures: une approche réaliste Apr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python: Explorer ses applications principales Python: Explorer ses applications principales Apr 10, 2025 am 09:41 AM

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Apr 08, 2025 pm 09:39 PM

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

Comment utiliser Aws Glue Crawler avec Amazon Athena Comment utiliser Aws Glue Crawler avec Amazon Athena Apr 09, 2025 pm 03:09 PM

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment afficher la version serveur de redis Comment afficher la version serveur de redis Apr 10, 2025 pm 01:27 PM

Question: Comment afficher la version Redis Server? Utilisez l'outil de ligne de commande redis-Cli --version pour afficher la version du serveur connecté. Utilisez la commande Info Server pour afficher la version interne du serveur et devez analyser et retourner des informations. Dans un environnement de cluster, vérifiez la cohérence de la version de chaque nœud et peut être vérifiée automatiquement à l'aide de scripts. Utilisez des scripts pour automatiser les versions de visualisation, telles que la connexion avec les scripts Python et les informations d'impression.

Dans quelle mesure le mot de passe de Navicat est-il sécurisé? Dans quelle mesure le mot de passe de Navicat est-il sécurisé? Apr 08, 2025 pm 09:24 PM

La sécurité du mot de passe de Navicat repose sur la combinaison de cryptage symétrique, de force de mot de passe et de mesures de sécurité. Des mesures spécifiques incluent: l'utilisation de connexions SSL (à condition que le serveur de base de données prenne en charge et configure correctement le certificat), à la mise à jour régulièrement de NAVICAT, en utilisant des méthodes plus sécurisées (telles que les tunnels SSH), en restreignant les droits d'accès et, surtout, à ne jamais enregistrer de mots de passe.

See all articles