Gestion de l'exécution du programme avec des espaces dans le chemin à l'aide de Python
En Python, os.system est couramment utilisé pour exécuter des programmes externes. Cependant, il peut échouer lorsque des espaces sont présents dans le chemin d'accès au programme.
Considérez l'extrait de code suivant :
<code class="python">import os os.system("C:\Temp\a b c\Notepad.exe");</code>
Ce code tente d'exécuter le Bloc-notes avec un chemin contenant des espaces. Cependant, il échoue avec l'erreur :
'C:\Temp\a' is not recognized as an internal or external command, operable program or batch file.
Pour résoudre ce problème, échappez le programme avec des guillemets :
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe"');</code>
Cependant, cette approche échoue lors de la transmission de paramètres au programme, car vu dans l'exemple suivant :
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"');</code>
Pour résoudre ce problème, utilisez subprocess.call :
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
subprocess.call accepte une liste d'arguments, éliminant ainsi le besoin de citations complexes. Cela résout efficacement le problème de l'exécution de programmes avec des espaces dans leurs chemins.
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!