Вопрос

Есть ли способ указать текущий каталог команды в 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__)) 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top