Comment exécuter des programmes externes avec des espaces dans le chemin à partir de Python ?

Linda Hamilton
Libérer: 2024-11-04 12:07:30
original
682 Les gens l'ont consulté

How to Execute External Programs with Spaces in Path from Python?

Exécuter des programmes externes à partir de Python avec des espaces dans le chemin

En Python, la fonction os.system peut être utilisée pour exécuter des programmes externes. Cependant, des problèmes peuvent survenir lors de l'exécution de programmes dont les chemins contiennent des espaces. Cet article explore le problème et propose une solution à l'aide du module de sous-processus.

Défis avec os.system

La fonction os.system interprète la chaîne d'entrée comme une commande pour être exécuté par le shell. Lorsque des espaces sont présents dans le chemin d'accès au programme, le shell peut les interpréter comme des délimiteurs de commandes, ce qui entraîne des erreurs telles que « commande introuvable ».

Gestion des espaces avec échappement

Échapper au chemin du programme avec des guillemets doubles peut parfois résoudre le problème. Cependant, l'ajout de paramètres supplémentaires à la commande peut à nouveau la casser.

Mêmes guillemets, syntaxe différente

Échanger les guillemets simples et doubles lors de la délimitation du chemin du programme (par exemple, "'C:Tempa b cNotepad.exe'") ne résout pas le problème et peut entraîner des erreurs "la syntaxe du nom de fichier est incorrecte".

Entrez le sous-processus

Pour Pour éviter les complexités de l'échappement du shell, le module de sous-processus fournit une solution plus robuste. La fonction subprocess.call prend une liste d'arguments plutôt qu'une chaîne. Les arguments sont facilement délimités par des espaces blancs dans la liste.

Exemple de script utilisant un sous-processus

Le script suivant utilise un sous-processus pour exécuter le Bloc-notes avec un paramètre :

<code class="python">import subprocess
subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
Copier après la connexion

Ce script exécutera correctement le Bloc-notes et attendra qu'il se termine sans rencontrer de problèmes de syntaxe dus aux espaces dans le chemin.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!