Python изменить рабочий каталог для исполняемого файла, открытого с помощью startfile - PullRequest
1 голос
/ 27 июня 2011

В Python я использую команду os.startfile, чтобы запустить исполняемый файл Windows, который выполняет специфические вещи в своей папке, код Python выполняется из другой папки, поэтому, когда я запускаю файл, он запускается в скрипте Python рабочий каталог, но он должен начинаться в своем собственном каталоге. Я пытался использовать os.chdir (путь), чтобы изменить рабочий каталог, но это не удается, файл все еще не работает в своей собственной папке. Я подумал, что, может быть, есть такая команда, как ярлык «Старт в». Я искал всех, но не успех. Единственное решение, которое приходит мне в голову, - это создать ярлык и добавить строку «начать с», а затем запустить ярлык, но это очень непрактично.

1 Ответ

4 голосов
/ 27 июня 2011

Не используйте os.startfile, для начала.Используйте subprocess, затем вы можете использовать cwd аргумент Popen.

import subprocess
process = subprocess.Popen('command', cwd = 'directory')

Если вы действительно хотите использовать ShellExecute, тогдалучший способ - пропустить os.startfile и вызвать его напрямую с помощью ctypes (или посмотреть, находится ли он где-нибудь в pywin32).

...