Maison > développement back-end > Tutoriel Python > Comment puis-je exécuter en toute sécurité des commandes externes en Python ?

Comment puis-je exécuter en toute sécurité des commandes externes en Python ?

Susan Sarandon
Libérer: 2024-12-21 11:34:10
original
819 Les gens l'ont consulté

How Can I Safely Run External Commands in Python?

Exécuter des commandes externes en Python

Lorsque vous travaillez avec Python, il peut y avoir des cas où vous devez exécuter un programme externe ou appeler un système commande comme si vous la tapiez directement dans un shell ou une invite de commande. Pour y parvenir, Python propose plusieurs méthodes, notamment subprocess et os.system.

Utilisation de subprocess.run

La méthode recommandée et préférée consiste à utiliser subprocess.run. Il est polyvalent, sûr et offre plus de contrôle que les autres options. Voici un exemple :

import subprocess

subprocess.run(["ls", "-l"])
Copier après la connexion

Méthode alternative : os.system

Une autre approche courante consiste à utiliser os.system. Cependant, il est généralement dangereux et déconseillé car il ne gère pas correctement les espaces et les caractères spéciaux. De plus, subprocess.run est plus flexible et offre des fonctionnalités supplémentaires.

Utilisation de subprocess.call (Python 3.4 et versions antérieures)

Avant Python 3.4, subprocess.call devrait être utilisé à la place de subprocess.run :

subprocess.call(["ls", "-l"])
Copier après la connexion

Sécurité Considérations

Il est essentiel de faire preuve de prudence lors de l'appel de commandes externes dans Python. Évitez d'utiliser os.system si une partie de la commande provient de sources externes ou contient des caractères potentiellement malveillants. Préférez toujours subprocess.run ou subprocess.call, car ils offrent plus de fonctionnalités de contrôle et de sécurité.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal