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
Susan Sarandonoriginal
2024-12-21 11:34:10820parcourir

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"])

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"])

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!

Déclaration:
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