在linux中打开文件夹窗口的标准方式?

问题描述:

我想在跨平台(windows/mac/linux)的Python应用程序中,在适当的文件管理器中打开一个文件夹窗口。在linux中打开文件夹窗口的标准方式?

在OSX,我可以在Finder中打开一个窗口,

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

,并在Windows与

os.startfile(foldername) 

怎么样的Unix/Linux?有没有一个标准的方法来做到这一点,或者我有特殊情况gnome/kde/etc和手动运行适当的应用程序(nautilus/konqueror/etc)?

这看起来像freedesktop.org人可以指定的东西(一个python模块,类似于webbrowser,也会很好!)。

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

xdg-open可用于文件/网址也

+5

这是更好地使用`进口subprocess` /`subprocess.Popen([ 'XDG-开放',文件夹名])`因为这避免引用问题 – 2011-03-15 07:57:41

这可能需要手动完成,或者作为配置项目,因为有许多文件管理器,用户可能想要使用。为命令选项提供一种方法。

可能有一个函数会在它们各自的工具包中启动kde或gnome的默认值,但我没有理由去寻找它们。

你将不得不基于运行窗口管理器来做到这一点。 OSX和Windows有一种(事实上的)标准方式,因为只有一种选择。

不应该需要指定确切的filemanager应用程序,但是,这应该可以通过wm来完成。我知道Gnome会这样做,在KDE中这样做很重要,因为有两种可能的文件管理器(Konqueror/Dolphin)可能正在使用中。

我同意这对于freedesktop.org来标准化是一件好事,但我怀疑它会发生,除非有人加紧行动,志愿者这样做。


编辑:我不知道XDG-开放的。很高兴知道!