Как указать рабочий каталог для popen
-
18-09-2019 - |
Вопрос
Есть ли способ указать текущий каталог команды в Python subprocess.Popen()
?
Например:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Мой скрипт Python находится в C:\programs\python
Можно ли запустить C:\mytool\tool.exe
в каталоге D:\test\local
?
Как установить рабочий каталог для подпроцесса?
Решение
subprocess.Popen
занимает cwd
аргумент установить текущий рабочий каталог;вы также захотите избежать обратной косой черты ('d:\\test\\local'
) или используйте r'd:\test\local'
чтобы обратные косые черты не интерпретировались Python как escape-последовательности.Как у вас написано, \t
часть будет переведена на вкладка.
Итак, ваша новая строка должна выглядеть так:
subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')
Чтобы использовать путь к скрипту Python как cwd, import os
и определите cwd, используя это:
os.path.dirname(os.path.realpath(__file__))
Не связан с StackOverflow