我想弄清楚如何让用户在文件上右击文件并选择“打开方式”时使python程序打开文件。例如,我希望用户能够右键单击文本文件并选择我的程序,以便我的程序可以处理文本文件。文本文件的名字是否传入我的程序?谢谢。“用...打开”Windows上的文件,用python应用程序
回答
这种方法的问题是您的.py文件不是可执行文件; Windows 将将文本文件作为参数传递给.py文件,但.py文件本身不会执行任何操作,因为它不是可执行文件。
你可以做的是编译你的脚本py2exe以获得一个实际的可执行文件,你可以在“Open With ...”屏幕中实际指定它(甚至可以将它注册为任何* .foo文件的默认文件)。在脚本中传递的.foo文件的路径应该是sys.argv[1]
。
首先,您需要注册脚本以使用Python在注册表中的ProgId下运行。至少,你需要定义的开放动词:
HKEY_CURRENT_USER\Software\Classes\MyApp.ext\
(Default) = "Friendly Name"
DefaultIcon\
(Default) = "path to .ico file"
shell\
open\
command\
(Default) = 'path\python.exe "path\to\your\script.py" "%L"'
您也可以替换HKEY_LOCAL_MACHINE
如果您正在安装机器宽*还有一些版本约定,你大概可以忽略不计。 File Types上的MSDN部分有更详细的信息。
第二步是到您的PROGID添加到OpenWithProdIds要出现在列表的扩展关键:
HKEY_CURRENT_USER\Software\Classes\.ext\OpenWithProgIds
MyApp.ext = None
关键的价值并不重要,只要名称完全匹配您的ProgId。
*注意HKEY_CLASSES_ROOT
实际上是一个假的关键是“包含”既HKLM\Software\Classes
和HKCU\Software\Classes
的联合;如果你正在写入注册表,你应该选择一个实际的密钥。你不需要提升安装到HKEY_CURRENT_USER
。
我会声明我没有试过这个,因为我并不特别想在这台机器上弄乱我的设置。 MSDN建议需要设置一些其他值,但通过我的注册表快速浏览说,它们不是必需的。如果这个最小的解决方案有效,绝对有兴趣继续前进并编辑我错过的任何额外位。 – Zooba
这根本行不通;在“打开方式”菜单中选择.py仍然报告它不是win32应用程序。 –
我的方法是使用包含python someprogram.py %1
的重定向.bat文件。该%1
传递文件路径为可与
from sys import argv argv[1]
- 1. Windows“打开”python py2exe应用程序
- 2. 用应用程序打开文件
- 3. 从通用Windows应用程序打开外部应用程序
- 4. 如何在Windows上使用Perl的默认应用程序打开文件?
- 5. 使用Windows系统上的默认应用程序打开Excel文件
- 6. Windows通用应用程序:打开USB驱动器上的文件
- 7. 使用Java上的外部应用程序打开文件
- 8. 使用iOs上的默认应用程序打开文件
- 9. 使用瓶子在python web应用程序上打开文本文件
- 10. Windows phone 7开发打开邮件附件的应用程序
- 11. Windows 8应用程序的打开文件对话框
- 12. 我的Windows应用程序文件“打开”
- 13. 通过Windows 7上的C#应用程序打开访问应用程序
- 14. 打开在Windows应用商店中的应用程序文件,使用默认的应用程序
- 15. 打开Windows窗体应用程序
- 16. 使用Python使用默认应用程序打开文件,然后在文件打开后打印?
- 17. 用scala打开windows上的文件source.fromFile()
- 18. 打开文件在Python/Django的Web应用程序
- 19. 从Windows应用程序C打开文件#
- 20. 在windows上使用C++打开和关闭应用程序
- 21. Windows上的iPhone应用程序开发
- 22. Python。文件打开程序
- 23. windows azure上的python云应用程序
- 24. 寻找在Windows上打开特定文件类型的默认应用程序
- 25. 从Python打开Excel应用程序
- 26. iOS:用UIDocumentInteractionController打开文件,并知道应用程序打开文件
- 27. python - 在应用程序中打开文件
- 28. 从资源管理器打开文件到Python应用程序
- 29. 防止在Python中打开文件时关闭应用程序
- 30. Windows 8应用程序通过Windows打开外部应用程序IE
py2exe访问的Python脚本是矫枉过正,因为它使一个程序,一个独立的EXE不都需要蟒蛇,它需要每次重新编译该程序被改变(如果你开发它)。在%python%\ Scripts \中有exe文件,它只是启动一个名称相同的python脚本。有人知道这件事吗? –