Maison > Article > développement back-end > Comment exécuter un programme avec des espaces dans le chemin à partir de 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!