¿Hay alguna manera de especificar el directorio de comando en ejecución en Python subprocess.Popen()?
Por ejemplo:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Mi script de Python se encuentra en C:\programs\python
¿Es posible ejecutar C:\mytool\tool.exeen el directorio D:\test\local?
¿Cómo configuro el directorio de trabajo para un subproceso?
python
subprocess
popen
icn
fuente
fuente

Respuestas:
subprocess.Popentoma uncwdargumento para establecer el Directorio de trabajo actual; también querrá escapar de sus barras diagonales inversas ('d:\\test\\local'), o usarlasr'd:\test\local'para que Python no interprete las barras diagonales inversas como secuencias de escape. De la forma en que lo tiene escrito, la\tparte se traducirá a a tab.Entonces, su nueva línea debería verse así:
Para usar su ruta de script Python como cwd,
import osy defina cwd usando esto:fuente
shell=False, no puede usar un shell integrado comocd: es decir, intente esto en Linux con shell en ambos sentidos:subprocess.Popen("cd /tmp; pwd")subprocess.call(["C:/Users/Bob/Some.exe"], cwd="C:/Users/Jane/")y funciona bien