哪些“命令动词”可用于 os.startfile 'operation' 参数,它们有什么作用?

Ian*_*Ian 5 python windows python-3.x python-os

根据Python 文档os.startfile需要两个参数:pathoperation。Path 描述得相当好且不言自明,但是对于operation,所要说的是:

当给出另一个操作[(not 'open')] 时,它必须是一个“命令动词”,指定应该对文件做什么。Microsoft 记录的常用动词是'print'and 'edit'(用于文件)以及'explore''find'(用于目录)。

这意味着存在其他命令动词。还有其他可用的命令动词吗?如果是这样,它们是什么以及它们做什么?

具体来说,我想知道与“打开文件位置”操作相关的命令动词。

Nor*_*ius 4

由于所有startfile操作基本上都是从 shell32调用 ShellExecuteW,因此这并不是真正特定于 Python 的。

\n\n

Microsoft 文档指出ShellExecute 函数系列中可用的操作 (\xe2\x80\x9cverbs\xe2\x80\x9d) 取决于确切的系统(注册表)。根据该页面, \xe2\x80\x9c 常用动词 \xe2\x80\x9d 是:

\n\n
    \n
  • edit \xe2\x80\x94 启动编辑器并打开文档进行编辑。
  • \n
  • find \xe2\x80\x94 从指定目录开始搜索。
  • \n
  • open \xe2\x80\x94 启动应用程序。如果该文件不是可执行文件,则启动其关联的应用程序。
  • \n
  • print \xe2\x80\x94 打印文档文件。
  • \n
  • 属性 \xe2\x80\x94 显示对象的属性。
  • \n
\n

  • 它取决于注册表中文件类型关联的 ProgId 等。例如,对于 .py 脚本,默认值为“Python.File”,它定义了标准“打开”命令,但也定义了多个“使用 IDLE 编辑”命令,这些命令显示在 .py 文件的右键单击上下文菜单的子菜单中。运行这些命令需要相对子项路径,例如 `os.startfile('test.py', r'editwithidle\shell\edit37')`。请注意,注册表路径仅使用反斜杠作为路径分隔符,而不是正斜杠。 (2认同)
  • 为许多文件类型定义的一个有用命令是“runas”,它类似于“open”,只不过它将请求发送到应用程序信息服务以运行提升的文件(即以管理员身份运行,带有 UAC 同意对话框)。Python 的安装程序没有为“Python.File”定义“runas”,但您可以通过复制“open”命令来创建它。然后,您可以使用“os.startfile”来运行提升的脚本,只要它不需要命令行参数即可。如果您需要命令行参数,那么您必须使用 PyWin32 或 ctypes 直接调用 `ShellExecute[Ex]`。 (2认同)