не могу открывать программы с расширением ".lnk" с помощью функции subprocess.call - PullRequest
1 голос
/ 11 октября 2019

кажется, что функцию subprocess.call можно просто использовать для файлов с расширением .exe.

Это код, который я пробовал для Firefox.lnk, в котором это тот же код, который я пытался дляgit-программа с расширением .exe и работающая без ошибок.

import subprocess
subprocess.call('C:/users/m.m/Desktop/Programs/Firefox')

Это ошибка, которую я получаю с Firefox.lnk:

Traceback (most recent call last):
File "C:/Users/m.m/PycharmProjects/untitled5/pros.py", line 2, in <module>
subprocess.call('C:/users/m.m/Desktop/Programs/Firefox.lnk')
File 
"C:\Users\m.m\AppData\Local\Programs\Python\Python37\lib\subprocess.py", 
line 323, in call
with Popen(*popenargs, **kwargs) as p:
File 
"C:\Users\m.m\AppData\Local\Programs\Python\Python37\lib\subprocess.py", 
line 775, in __init__
restore_signals, start_new_session)
File 
"C:\Users\m.m\AppData\Local\Programs\Python\Python37\lib\subprocess.py", 
line 1178, in _execute_child
startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application

Firefox (Без расширения ) дает мне FileNotFoundError: [WinError 2] The system cannot find the file specified.

, когда я пробую код без расширения для тех программ с расширением '.exe', у меня нет проблем, но с любой программой без расширения '.exe' я получаюошибка ... так же, как Firefox, который имеет расширение .lnk.

1 Ответ

1 голос
/ 13 октября 2019

Для обработки .lnk файлов в Windows в стандартной библиотеке есть os.startfile() (только для Windows).

Если вы хотите добавить параметры в команду, вы также можете использовать start команда. Это встроенная команда (нет start.exe), поэтому для ее запуска требуется оболочка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...