Подпроцесс Python не может запустить скрипт в сетевом расположении на Windows - PullRequest
1 голос
/ 17 апреля 2020

Я работаю на машине Windows. В моей Python программе я использую подпроцесс для выполнения системного вызова исполняемого файла. Исполняемый файл, который я пытаюсь запустить, находится в сетевом расположении, например,

\\mycompanyname\\internal\\...\\myscript.pl

Я использую функцию следующим образом:

subprocess.run(['\\mycompanyname\\internal\\...\\myscript.pl'])

и всегда получить следующую ошибку:

FileNotFoundError: [WinError 2] Системе не удается найти указанный файл

Если я скопирую и вставлю точно такую ​​же команду в оболочку cmd, это работает отлично. Как получить подпроцесс для правильного разрешения файла в сетевом расположении?

1 Ответ

1 голос
/ 17 апреля 2020

Python использует escape-последовательности с backsla sh. Таким образом, double backsla sh в обычной строке = escaped (single) backsla sh.

Чтобы использовать строку буквально, исключая экранирование, используйте необработанную строку - обозначенную r непосредственно перед открытием кавычек :

subprocess.run([r'\\mycompanyname\\internal\\...\\myscript.pl'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...