在Python中获取文件关联

2024-02-03

我想要在 Linux 和 Windows 中获取与扩展关联的程序。我知道我可以在 Linux 中执行 xdg-open 或在 Windows 中启动,但我要在远程服务器上打开媒体文件,因此使用此方法将打开网络浏览器,而不是默认媒体播放器。如何获取扩展的默认应用程序?


仅覆盖以下 Windows:

我认为它会接近我刚刚经历过的 .doc (与 winword.exe 相关)。

在我的机器上...

步骤1:查看注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc


On 视窗XP

第 2 步:查看default值(忽略那里的其他一切)。 我看到的默认值是Word.Document.8

第 3 步:现在使用它,并将其插入(请注意下面的键名称),以读取默认值

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

该值为: "\"C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE\" /n /dde"

这就是我的系统上 MS Word 的路径,至少在 XP 上是这样。

另外刚刚注意到,关于上面 Mikel 的建议,这些建议在 XP 上得到了体现:

C:\>assoc .doc
.doc=Word.Document.8

C:\>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE" /n /dde

On Windows 7的

STEP 1 中的默认值没有设置任何值,该死,简单性就这样消失了。 有一个名为“OpenWithProgIDs”的子项,所以我想如果默认值为空或取决于操作系统版本,您会查找该子项。

步骤 2:读取名为“OpenWithProgIDs”的子项。 有一个项目名为Word.Document.8,所以我们现在回到这个话题。

第 3 步:再次插入,读取默认值

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

在这种情况下(我的)值更复杂:

“C:\Program Files (x86)\Common Files\microsoft共享\虚拟化处理程序\cvh.exe”“Microsoft Word Starter 2010 9014006604090000”/n“%1”

在正确的邻居中,就使用注册表而言。

不幸的是,在 Windows 7 上,“assoc”和“ftype”至少对于我的计算机上的 .doc 和 winword.exe 路径没有起到作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中获取文件关联 的相关文章

随机推荐

  • 在 Postgres 中使用 DELETE 的返回值进行 UPDATE

    我需要使用从另一个表中删除的值来更新表 情况是类似于SO 上的评论投票记分员 我正在使用 python 来处理 postgres 但这应该没有什么区别 query UPDATE comment SET score score DELETE
  • persistence.xml 中 jpa 的 C3p0 连接池不起作用?

    在尝试按照我能找到的所有示例配置 c3p0 后 我仍然遇到 JDBC 超时问题 我正在使用 JPA Hibernate Tomcat MySQL AWS RDS 这是 persistence xml 的片段
  • 需要 Django 表单集

    如何使 django formset 中的所有表单都成为必需的 我试图验证所有字段的存在cleaned data重写 formset 的 clean 方法 但它只是默默地失败 没有显示任何错误 Thanks 源代码 class BaseSc
  • 检查我的系统中是否安装了 Python 软件包?

    如何检查我的系统中是否安装了某些软件包 我的系统是Linux 但如果它能在其他操作系统上运行就更好了 我的意思是操作系统特定的软件包 例如可能是 rpm 或 deb 有没有 python 模块或脚本可以做到这一点 要查明您是否安装了 deb
  • 如何在不单击按钮的情况下将两个值相乘 - javascript

    这是我的小提琴 http jsfiddle net YFgkB 6 http jsfiddle net YFgkB 6
  • 有没有办法从 Qt 中的另一个信号触发一个信号?

    我已经有了一个应用程序 现在正在对其进行调整 在这方面 我引入了一个新信号 当发出另一个信号时必须发出该信号 这在 Qt 中可能吗 编写一个插槽只是为了发出这个信号感觉如此原始和蹩脚 进一步详细说明 我必须将按钮 signalClicked
  • 如何检查哪些提交尚未推送到原点?

    我已经向我的本地分支 我们就说 master 做出了提交 并让 git pull 下来了其他人所做的更改 当我运行 git status 时 我看到类似以下内容 Your branch is ahead of origin master b
  • Autoconf:如何将安装路径获取到config.h中

    我的程序需要在运行时加载一些文件 这些文件将安装到指定的任何文件夹中 configure datadir somewhere 由于我的程序需要在运行时知道该文件夹的位置 因此我需要在某处 define 一个符号 以便 C 代码可以以字符串形
  • 将 Lambda 传递给 pthread_create?

    我在整个网络上搜索答案 但没有找到任何解决方案 你能帮忙吗 我的问题是我正在尝试将 Lambda 发送到另一个函数并使用Pthread跨多个线程运行 lambda 的库 接下来是代码 1 include
  • CX_Freeze - 构建具有管理员权限的 .msi

    我正在尝试从我的 python tkinter 代码创建一个可由其他用户安装的可执行文件 我已经能够使用 cx Freeze 成功执行此操作 但是 exe 无法写入工作或指定目录中的文件 研究这个问题后 我发现这可能是因为 exe没有适当的
  • sklearn ImportError:没有名为 _check_build 的模块

    我正在尝试导入 sklearn 但是当我尝试这样做时 我收到以下信息 ImportError Traceback most recent call last
  • 具有本地 IP 的设备的自签名证书

    设想 我们有一个类似于 WiFi 路由器的设备 它暴露了 UI 和 API 该设备将在我们无法控制的任何 LAN 上运行 就像 WiFi 路由器在任何房屋上运行一样 该设备不属于任何域 通过浏览器通过其 IP 地址 即 192 168 1
  • Laravel 迁移:从现有外键中删除 onDelete('cascade')

    我创建了这样的迁移 table gt foreign a gt references b gt on c gt onDelete cascade 我想删除onDelete cascade 在新的迁移中而不破坏任何东西 我怎样才能做到这一点
  • 在 C# 中计算 Internet(又名 IP、又名 RFC791)校验和

    有趣的是 我可以在除 C 之外的几乎所有语言中找到 Internet 校验和的实现 有人有实现可以分享吗 请记住 互联网协议 http www faqs org rfcs rfc791 html规定 校验和字段是 16 位的 1 的补码 标
  • 3D稀疏矩阵实现?

    我发现了一个非常好的 C 稀疏矩阵实现http www blackbeltcoder com Articles algorithms creating a sparse matrix in net http www blackbeltcod
  • Gson 仅在不为 null 或不为空时序列化字段

    我有一个需求 需要将 java 对象转换为 json 我正在使用 Gson 但我需要转换器仅序列化非空或非空值 例如 my java object looks like class TestObject String test1 Strin
  • unicode 输出 java windows cmd

    我是java新手 所以请原谅我 如果这是常见的知识 但我已经努力搜索 但找不到任何有用的 相关的或可理解的东西 考虑到我是一个C开发人员 这很奇怪 我的问题是 如何让java在Windows shell中打印Unicode字符串 为简单起见
  • 处理 Tornado 中未定义的模板变量

    这是一个龙卷风模板 例如 在文件 logout html 中 我在注销过程中出现错误时呈现 if logout error Oops The logout failed Please close all open documents and
  • android 点击劫持,如何防止它

    试图避免我的观点涉及从覆盖层接收反馈 以下是某人在 Android 上进行的黑客攻击示例 允许用户无意中按下系统按钮属性 甚至输入凭据来执行与最初意图完全不同的操作 http www youtube com watch v gCLU7YUX
  • 在Python中获取文件关联

    我想要在 Linux 和 Windows 中获取与扩展关联的程序 我知道我可以在 Linux 中执行 xdg open 或在 Windows 中启动 但我要在远程服务器上打开媒体文件 因此使用此方法将打开网络浏览器 而不是默认媒体播放器 如