Existe uma maneira de especificar o diretório de comando em execução no Python subprocess.Popen()
?
Por exemplo:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Meu script Python está localizado em C:\programs\python
É possível executar C:\mytool\tool.exe
no diretório D:\test\local
?
Como defino o diretório de trabalho para um subprocesso?
python
subprocess
popen
icn
fonte
fonte
Respostas:
subprocess.Popen
usa umcwd
argumento para definir o Diretório de trabalho atual; você também deseja escapar das barras invertidas ('d:\\test\\local'
) ou usá-r'd:\test\local'
las para que as barras invertidas não sejam interpretadas como seqüências de escape pelo Python. Do jeito que você escreveu, a\t
parte será traduzida para a tab.Portanto, sua nova linha deve se parecer com:
Para usar o caminho do script Python como cwd,
import os
e defina cwd usando isto:fonte
shell=False
, você não pode usar um shell builtin tais comocd
: ou seja, tente isso em Linux com o escudo de duas formas:subprocess.Popen("cd /tmp; pwd")
subprocess.call(["C:/Users/Bob/Some.exe"], cwd="C:/Users/Jane/")
e funciona bem