运行 来自 python 于 Windows 的星露谷物语

Running Stardew Valley from python on Windows

目前我正在尝试从 python 运行 Stardew Valley 这样做:

import subprocess
subprocess.call(['cmd', 'D:\SteamR\steamapps\common\Stardew Valley\Stardew Valley.exe'])

然而,这失败了,只打开了一个 CMD window。我对如何从 python 启动程序有基本的了解,但我不明白如何专门打开一个不仅位于不同位置,而且位于不同驱动器上的程序。

如有任何帮助,我们将不胜感激。谢谢!

编辑:

这是在 windows 10

Stardew Valley 版本是测试版,位于 D:/ 驱动器上(windows 当然是在 C:/ 上)

您不必使用cmd,您可以直接启动.exe

此外,您应该知道 \ 用于转义 Python 字符串中的字符,但不应在 Windows 路径中进行特殊解释。对于 Windows 路径,最好使用前缀为 r 的原始字符串,这样会禁用此类转义:

import subprocess
subprocess.call([r'D:\SteamR\steamapps\common\Stardew Valley\Stardew Valley.exe'])

能否尝试使用游戏的appid使用steam命令行:

subprocess.call(r"C:\Program Files (x86)\Steam\Steam.exe -applaunch 413150")

您可以在桌面快捷方式属性"web document tab"中找到应用程序 ID
(可以通过右键单击并 select 在 steam 库中创建桌面快捷方式来生成)。 它会是这样的 steam://rungameid/413150

您可以使用以下方式:

import os
os.startfile("D:\SteamR\steamapps\common\Stardew Valley\Stardew Valley.exe")

这段代码的作用是,它只是使用其 windows 分配的默认程序打开文件

这种启动方式的缺点是它不会 return 任何进程对象。因此,为了管理您需要使用 win32 包或其他程序的进程。