2008-09-03 74 views
7

我想在跨平臺(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,也會很好!)。

回答

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

xdg-open可用於文件/網址也

+5

這是更好地使用`進口subprocess` /`subprocess.Popen([ 'XDG-開放',文件夾名])`因爲這避免引用問題 – 2011-03-15 07:57:41

0

這可能需要手動完成,或者作爲配置項目,因爲有許多文件管理器,用戶可能想要使用。爲命令選項提供一種方法。

可能有一個函數會在它們各自的工具包中啓動kde或gnome的默認值,但我沒有理由去尋找它們。

0

你將不得不基於運行窗口管理器來做到這一點。 OSX和Windows有一種(事實上的)標準方式,因爲只有一種選擇。

不應該需要指定確切的filemanager應用程序,但是,這應該可以通過wm來完成。我知道Gnome會這樣做,在KDE中這樣做很重要,因爲有兩種可能的文件管理器(Konqueror/Dolphin)可能正在使用中。

我同意這對於freedesktop.org來標準化是一件好事,但我懷疑它會發生,除非有人加緊行動,志願者這樣做。


編輯:我不知道XDG-開放的。很高興知道!

相關問題