Est-il possible de spécifier le répertoire d'exécution de la commande dans subprocess.Popen()
de Python?
Par exemple:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Mon script Python se trouve dans C:\programs\python
Est-il possible d'exécuter C:\mytool\tool.exe
dans le répertoire D:\test\local
?
Comment définir le répertoire de travail d'un sous-processus?
subprocess.Popen
prend un argument cwd
pour définir le répertoire de travail actuel; vous voudrez également échapper vos barres obliques inverses ('d:\\test\\local'
) ou utiliser r'd:\test\local'
pour que les barres obliques inverses ne soient pas interprétées comme des séquences d'échappement par Python. Comme vous l'avez écrit, la partie \t
sera traduite en un tab.
Donc, votre nouvelle ligne devrait ressembler à ceci:
subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')
Pour utiliser votre chemin de script Python en tant que cwd, import os
et définir cwd en utilisant ceci:
os.path.dirname(os.path.realpath(__file__))