我正在尝试使用子进程模块打开记事本但发生错误。
import subprocess
subprocess.Popen(r'C:\Users\user\Desktop\notepad.lnk')
错误:
Traceback (most recent call last): File
"C:\Python36\kodovi\proba.py", line 2, in <module>
subprocess.Popen(r'C:\Users\user\Desktop\notepad.lnk') File
"C:\Python36\lib\subprocess.py", line 709, in __init__
restore_signals, start_new_session) File "C:\Python36\lib\subprocess.py", line 997, in _execute_child
startupinfo) OSError: [WinError 193] %1 is not a valid Win32 application
从错误中可以清楚地看出,快捷方式不被子进程视为应用程序。以下代码可用于启动快捷方式 -
subprocess.Popen(r'start C:\Users\user\Desktop\notepad.lnk', shell=True)
我相信你的问题是Popen本身不遵循Windows符号链接。你必须在执行中加入一个shell:
subprocess.Popen(r'C:\Users\user\Desktop\notepad.lnk', shell=True)
因为shell在调用Popen本身之前解析了链接。