2011-09-11 5 views
3

OSのエクスプローラまたはファイルマネージャGUIを開くためのクロスプラットフォームの方法を探しています。現在のディレクトリでエクスプローラ/ファイルマネージャシェルを開くよりクロスプラットフォームの方法はありますか?

このコードは簡潔であり、Windows XPプラットフォームで動作します。これにより、OSはユーザが選択したファイルマネージャを選択することができます。テストケースでは、デフォルトのExplorer.exeが使用されます。このコードは、現在の作業ディレクトリを開きます。

import os 
os.startfile('.') 

これはWindowsプラットフォームで動作するとのことです。 UnixやMacプラットフォームで動作するとは言いません。

これは、独自のプロセスでWindowsエクスプローラアプリケーションを開き、Pythonアプリケーションの実行を継続します。サブプロセスではなく、完全に独立したプロセスであるように見えます。呼び出し元のPythonプログラムまたはWindowsエクスプローラのいずれかを開いたり開いたりすることができるからです。

別のプラットフォーム用のデフォルト(またはユーザが選択した)GUIファイルマネージャを(現在のパスに対して)セパレータで開くPythonコードは何ですか?プロセス? OSX上で

+0

をWindowsと多分OSXである([ 'のxdg-オープン'、 ''])誰もがそのような行動を望むシステムだけです。 Linuxでは、シェルや好きなファイルマネージャを使用する傾向があります。つまり、大多数の人が使用する特定のファイルマネージャはありません。 – ThiefMaster

答えて

1

これを行う簡単な方法は、open使用することです:Linuxデスクトップシステムで

import subprocess 

subprocess.call(['/usr/bin/open', '~']) 
+0

Windowsでも動作します。ありがとう。 – DevPlayer

1

を、あなたは、ディレクトリ(または任意のファイル)を開くために「のxdg-オープン」コマンドを期待することができますとそのファイルタイプを開くためのデフォルトアプリケーション。だから例えば、パイソンからそのコマンドを呼び出す:

輸入サブプロセス

subprocess.call

+0

これはすべてのLinuxディストリビューションか、それとも特定のディストリビューションのためのものですか? – DevPlayer

関連する問題