为什么打开资源管理器 window 并通过 Python 的子进程选择文件 return 错误代码 1

Why does opening an explorer window and selecting a file through Python's subprocess return error code 1

我正在编写一些代码来打开资源管理器 window 和 select Windows 中给定文件路径的文件。

我找到了一个解决方案 here,从表面上看似乎可行。它打开 Windows 资源管理器并根据需要突出显示文件。但是,我收到错误代码 1 returned。 理想情况下,我想通过检查 return 代码来了解操作是否成功,但即使它看起来运行正常,我也会得到 1。

我的代码如下所示:

a_file = r"C:\a_path\to\afile.file"
cmd_args = ['explorer', '/select,', a_file]
p = subprocess.call(cmd_args)
print(p)

哪个 returns:

1

我也尝试过使用 os.systemsubprocess.Popen 以防万一(它没有)。 我正在使用 Python 2.7,并在 Windows 10 64 位上进行测试,但我更希望我的解决方案与尽可能多的 Windows 和 Python 设置兼容。

如果有人知道为什么或如何避免出现这种情况,那就太好了!谢谢

人们一直在观察 Windows GUI return 退出代码 1 for a while, and come to accepting it

您可能想尝试通过 win32com、explorer.exe here and comments here.

的代码片段来控制您的 windows 程序