Maison >développement back-end >Tutoriel Python >Comment exécuter un programme avec des espaces dans le chemin à partir de Python ?

Comment exécuter un programme avec des espaces dans le chemin à partir de Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 15:08:03464parcourir

How to Execute a Program with Spaces in the Path from Python?

Comment exécuter un programme à partir de Python

Python fournit un moyen pratique d'exécuter des programmes externes à l'aide de la fonction os.system(). Cependant, cette fonction peut échouer lorsque le chemin d'accès au programme contient des espaces.

Solution : Utilisation de subprocess.call()

La fonction subprocess.call() est une alternative à os.system() qui évite les problèmes de citation causés par les espaces dans le chemin. Il prend une liste d'arguments au lieu d'une seule chaîne, simplifiant la délimitation des arguments.

<code class="python">import subprocess

subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>

Dans cet exemple, Notepad.exe sera exécuté avec le paramètre C:\test.txt. La fonction subprocess.call() attendra la fin du programme.

Autres options

1. Échapper aux espaces

Mettre le chemin entre guillemets doubles peut échapper aux espaces. Cependant, cette méthode peut devenir lourde lors de l'ajout de plusieurs paramètres.

<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"')</code>

2. Utiliser Shell=True avec os.system()

Le paramètre shell=True permet à l'interpréteur de commandes du système d'exploitation de gérer les conventions de citation. Cependant, cette méthode comporte des risques de sécurité.

<code class="python">os.system("C:\Temp\a b c\Notepad.exe C:\test.txt", shell=True)</code>

Conclusion

subprocess.call() est la méthode préférée pour exécuter un programme à partir de Python lorsque le chemin contient espaces. Il fournit une solution simple et sécurisée.

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