在Linux中打开文件夹窗口的标准方法是什么?

13 投票
3 回答
11173 浏览
提问于 2025-04-10 23:33

我想在一个跨平台的Python应用程序中,从里面打开一个文件夹窗口,使用合适的文件管理器。

在Mac上,我可以用下面的代码在Finder中打开一个窗口:

os.system('open "%s"' % foldername)

在Windows上,我可以用下面的代码:

os.startfile(foldername)

那在Unix/Linux系统上呢?有没有标准的方法可以做到这一点,还是说我得针对不同的桌面环境(比如gnome、kde等)来特别处理,手动运行相应的应用程序(比如nautilus、konqueror等)?

这看起来应该是freedesktop.org的团队可以定义的东西(如果有一个像webbrowser那样的Python模块就更好了!)。

3 个回答

0

这可能需要手动操作,或者作为一个配置项来设置,因为用户可能会想使用很多不同的文件管理器。同时,也要提供一种方式来设置命令选项。

可能有一些功能可以启动KDE或GNOME的默认设置,但我还没有理由去查找这些功能。

0

你需要根据你正在使用的窗口管理器来做这件事。因为在OSX和Windows上,只有一个选择,所以它们有一个(事实上的)标准方式。

其实你不需要指定具体的文件管理器应用程序,这个应该可以通过窗口管理器来实现。我知道Gnome是这样做的,而在KDE中这样做很重要,因为可能会使用两个不同的文件管理器(Konqueror和Dolphin)。

我同意这应该是freedesktop.org去标准化的一个好事情,不过我怀疑这是否会发生,除非有人主动站出来去做这件事。


补充:我之前不知道xdg-open。知道这个真不错!

16
os.system('xdg-open "%s"' % foldername)

xdg-open 这个命令可以用来打开文件或者网址。

撰写回答