Pythonスクリプトを特定のファイルタイプ(例:* .foo)のデフォルトアプリケーションにするにはどうすればよいですか?同様に、Finder/Explorerでファイルをダブルクリックすると、ファイルをPythonスクリプトで開くことができます。Pythonスクリプトで特定のファイルタイプを開きますか?
これはWindowsおよび/またはOS Xで可能ですか?もし問題があれば、アプリケーションはPySideアプリです。
Pythonスクリプトを特定のファイルタイプ(例:* .foo)のデフォルトアプリケーションにするにはどうすればよいですか?同様に、Finder/Explorerでファイルをダブルクリックすると、ファイルをPythonスクリプトで開くことができます。Pythonスクリプトで特定のファイルタイプを開きますか?
これはWindowsおよび/またはOS Xで可能ですか?もし問題があれば、アプリケーションはPySideアプリです。
foo
Get Info
をするか、ファイルのアイコンをクリックし、情報を取得したり、ファイルをクリックしてくださいクリックして、ヒットコマンド + IOpen With
ペインに、change All
ボタンcontinue
これはどのOSですか? – Chris
Chris、Mac OS X. –
* .appファイルではなく* .pyファイルを選択する方法はありますか(py2appか何かから来ていますか?) – c00kiemonster
を言って、確認を求めます:
.docx
ファイルを使用)Open with...
python
Always use the selected program to open this kind of file
。注:この意志実行 Pythonシェルのコンテキストで.docx
ファイルの内容。ファイルの内容の評価が終了するとすぐに終了します。ワードプロセッサでファイルを編集する場合は、notepad++をダウンロードし、そのアプリケーションをデフォルトとして選択する必要があります。
OPは、python自体ではなく、自分自身のpython script_で特定のファイルタイプを開くことを望んでいます。 – ekhumoro
私は自分自身で答えを探している間にこの古い質問を見つけました。私は私の解決策を共有すると思いました。私は単純なCプログラムを使ってPythonスクリプトに引数を渡し、Pythonスクリプトをコンパイルしなくてもスクリプトを実行できるようにしました。ここに私のCプログラムがあります:
int main(int argc, char *argv[]){
char cmd[0xFF];
// For me, argv[1] is the location of the file that is being opened. I'm not sure if this is different on other OSes
snprintf(cmd,sizeof cmd,"python YOUR_PYTHON_SCRIPT_HERE.py -a %s", argv[1]);
system(cmd);
return 0;
}
次に、cプログラムをコンパイルして、ファイル拡張子のデフォルトアプリケーションとして設定しました。
次に、pythonスクリプトYOUR_PYTHON_SCRIPT_HEREにあります。PY、私はこのような引数を受け取る:
import sys
assert len(sys.argv) > 2 # Breaks if you call the script without the arguments
theFile = " ".join(sys.argv[2:]) # What the c program gives us
print(theFile) # Print it out to prove that it works
theFileを使用してファイルの内容を取得します
を開かれているファイルの場所が含まれます:
with open(theFile,"r") as f:
fileContents = f.read()
Mac OS Xオートメーターを使用すると、Pythonアプリを呼び出して入力ファイルをパットに渡すアプリケーションを作成できますhを文字列引数として返します。アプリケーションのワークフローウィザードでは、「ファイル名を指定して実行シェルスクリプトを」アクションを追加as arguments
としてPass input:
を選択し、テキストボックスに追加します。
python /path/to/my/app/myapp.py "[email protected]"
どんな引数に沿っ"[email protected]"
パスが通り(選択したファイル別名)入力にありました文字列。あなたのスクリプトが入力(sys.argv
)を文字列のリスト(最初のものはpython appのパス)として扱うように設定されている限り、それは動作します。
このAutomatorワークフローを保存すると、他のアプリと同様にOS Xによって処理され、そのアプリを "* .foo"タイプのファイルのデフォルトとして設定できます。そのアプリに「* .foo」を関連付けるには、.fooファイルGet Info
Open with: Other...
を右クリックし、Automatorで作成したアプリを選択してChange All...
ボタンをクリックします。
Windowsでも同様ですが、それほど関係のないアプローチが有効です。あなたは、おそらく次のようにバッチファイル(.bat
)を作成することができます。
python C:\path\to\my\app\myapp.py %*
%*
は、すべての引数に展開されます。
ファイル拡張子をそのバッチファイルに関連付けることができれば、それを実行できます。それがあなたの解決策です。しかし、私はこのWindowsソリューションを試していないので、塩の粒でそれを取る。一方、Macのソリューションは、私はテストしました。
例として、私が書いた普遍的な解決策があります: 1)LinuxのボックスにコピーされたWindowsデスクトップリンク(* .URL)を開きます。 または 2)WindowsのボックスにコピーされたLinuxのデスクトップリンクを開きます。
ここでは両方のケースを扱うのPythonスクリプトは次のとおりです。Windowsの
# UseDesktopLink.py
import sys
import webbrowser
script, filename = sys.argv
file_object = open(filename,'r')
for line in file_object:
if line[0:4]=="URL=":
url=line[4:]
webbrowser.open_new(url)
file_object.close()
、関連付けを処理するために(batファイル経由)スコット・Hのメソッドを使用します。
Linuxでは、WindowsのURLファイルを右クリックします。 [プロパティ]を選択し、[開く]をクリックします。 [追加]をクリックして新しいアプリケーションを追加します。次に、[アプリケーションの追加]ウィンドウの下部にある[カスタムコマンドを使用する]をクリックします。 UseDesktopLink.pyファイルを参照して、[開く]をクリックします。しかし、[追加]をクリックする前に、 "カスタムコマンドを使用する"の下のテキストボックスで、ファイル名の前に "python"を入れてください(引用符なし)。次に、[追加と終了]をクリックします。
希望に役立ちます。
Javaスタブを起動するのはあなたに適していますか? http:// stackoverflow。com/questions/550329/how-to-open-a-file-with-the-default-associated-programそれ以外の場合は、ポータブルなソリューションが必要な場合は、あなたは運がないと確信しています。 – kay
その質問から、どのアプリケーションでもファイルを開く方法を見つけることができませんでした。その '.open'メソッドは、デフォルトのアプリケーションでのみファイルを開くようです。可能であれば、pythonスクリプトを開くためにJavaアプリケーションが必要なので、私の答えよりも優れた解決策ではありません。 – potato