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
Libérer: 2024-11-03 15:08:03
original
482 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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