使用 Python 处理文件打开(mime 类型)

使用 Python 处理文件打开(mime 类型)

我创建了一个文件我的MIME配置文件

<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="text/myapp">
        <comment>my format</comment>
        <glob pattern="*.myformat"/>
    </mime-type>
</mime-info>

和一个文件myapp.desktop

[Desktop Entry]
Name=MyApp
GenericName=My Generic Name 
Comment=a comment
Exec=myapp
Icon=myicon
Terminal=false
Type=Application
Categories=Development;
MimeType=text/myapp;
Name[en_US]=MyApp

现在,当我右键单击以 myformat 结尾的文件时,它建议使用 MyApp 打开,这正是我想要的行为!但是在 python3 代码上(我使用的是 PyQt5),当有这样的文件加载时,我该如何获取加载参数?(右键单击打开或双击 file.myformat)

答案1

好的,我用以下代码解决了这个问题:

class MainWindow(QMainWindow):
    def __init__(self, filelist, **kwargs):

        openFileAtStart(filelist)

    def openFileAtStart(self, filelist):
        matching = [s for s in filelist if ".myformat" in s]
        if len(matching) > 0:
            self.openFileByName(matching)

if __name__ == "__main__":
    from sys import argv, exit
    from PyQt5.QtWidgets import QApplication
    a = QApplication(argv)
    MainWindow(argv)

基本上,在打开时,QApplication 需要读取argv参数,并删除与 Qt 相关的所有内容。然后我将剩余的参数传递给我的应用程序(“MainWindow”),它将处理列表检查以查找与我的格式匹配的项目,并将此列表抛出到处理打开文件的函数。

相关内容