为什么子进程模块给我WinError193?

问题描述 投票:0回答:2

我正在尝试使用子进程模块打开记事本但发生错误。

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
python windows subprocess
2个回答
1
投票

从错误中可以清楚地看出,快捷方式不被子进程视为应用程序。以下代码可用于启动快捷方式 -

subprocess.Popen(r'start C:\Users\user\Desktop\notepad.lnk', shell=True)

0
投票

我相信你的问题是Popen本身不遵循Windows符号链接。你必须在执行中加入一个shell:

subprocess.Popen(r'C:\Users\user\Desktop\notepad.lnk', shell=True)

因为shell在调用Popen本身之前解析了链接。

© www.soinside.com 2019 - 2024. All rights reserved.