ユーザーがファイルを右クリックして「Open With」を選択すると、Pythonプログラムがファイルを開く方法を理解しようとしています。たとえば、ユーザーがテキストファイルを右クリックしてプログラムを選択し、プログラムがテキストファイルを処理できるようにしたいとします。テキストファイルの名前は私のプログラムにどこかで渡されますか?ありがとう。"Open with ..." Windows上のファイル(Pythonアプリケーションを使用)
答えて
この方法の問題は、.pyファイルが実行可能ファイルではないことです。 Windows は、テキストファイルをパラメータとして.pyファイルに渡しますが、.pyファイル自体は実行ファイルではないため何もしません。
py2exeでスクリプトをコンパイルして実際の実行ファイルを取得することができます。これは実際には "Open With ..."画面で指定できます(* .fooファイルのデフォルトとして登録することもできます)。 )。渡される.fooファイルへのパスは、スクリプト内でsys.argv[1]
である必要があります。
まず、PythonでProgIdの下でレジストリに登録するスクリプトを登録する必要があります。最低でも、あなたが定義したオープン動詞必要があります。あなたは、マシン全体でインストールしている場合は、HKEY_LOCAL_MACHINE
を置き換えることができ
HKEY_CURRENT_USER\Software\Classes\MyApp.ext\
(Default) = "Friendly Name"
DefaultIcon\
(Default) = "path to .ico file"
shell\
open\
command\
(Default) = 'path\python.exe "path\to\your\script.py" "%L"'
を*また、あなたはおそらく無視することができ規則がバージョン管理されています。 File TypesのMSDNセクションには、より詳細な情報があります。
第2のステップはのためにあなたがリストに表示する拡張機能のOpenWithProdIdsキーにあなたのProgIdを追加することです:キーの値が限り、重要ではありません
HKEY_CURRENT_USER\Software\Classes\.ext\OpenWithProgIds
MyApp.ext = None
名前はProgIdと正確に一致します。
* HKEY_CLASSES_ROOT
が実際にHKLM\Software\Classes
とHKCU\Software\Classes
両方の労働組合を「含む」という偽の鍵であることに注意してください。レジストリに書き込む場合は、実際のキーの1つを選択する必要があります。 HKEY_CURRENT_USER
にアップグレードする必要はありません。
私は特にこのマシンで自分の設定を混乱させたくないので、私はこれを試していないことを宣言します。 MSDNには、いくつかの他の値を設定する必要があることが示唆されていますが、レジストリを見てみると、必要がないと言われています。この最小限のソリューションがうまくいくかどうかは明らかです。私が逃した余分なビットで編集してください。 – Zooba
これは単純に機能しません。 'open with'メニューの.pyを選択しても、win32アプリケーションではないことが報告されます。 –
私のアプローチは、python someprogram.py %1
を含むリダイレクト.batファイルを使用することです。 %1
は
from sys import argv argv[1]
- 1. python open windows explorer
- 2. "Open with" - C#プログラムは、Windowsの "Open With"コンテキストメニューのアイコンを表示します。
- 3. Windows用Pythonアプリケーション
- 4. Open MPI with C++を使用したプロセッサ上での配列コンポーネントの配布
- 5. SendTo/Open With
- 6. python 2.7、open( 'file.txt')のカウンターを使用
- 7. os.path.islink with windows Python
- 8. GnomeファイルNautilusのコンテキストメニュー「Open with」アプリケーションリスト
- 9. WindowsでPython用Open Kinectドライバをコンパイルするときの問題
- 10. アンドロイドスタジオ3.0デバイスファイルエクスプローラ "open with"
- 11. debug.keystore open with promp
- 12. open failed:ENAENT with getAbsolutePath()
- 13. "Open with ..."既存のフォーム
- 14. Open CL with AMD
- 15. Windows上のPythonで別のアプリケーションがファイルを使用しているかどうかを確認する方法
- 16. open with文を使ってファイルを開く方法
- 17. Open BytesIO(xlsx)with xlrd
- 18. は、Windows上のpython
- 19. Windows上のpython
- 20. WindowsでPython 3.5を使用してファイルを開く
- 21. Open Barebones IE with Shortcut
- 22. Excel open FontAwesomeを使用したHTMLファイル
- 23. Python: "with"を使用してzipファイルまたはunzippedファイルを開く
- 24. OS上のWindows 8用アプリケーション<Win8
- 25. Windowsアプリケーションのパフォーマンスを向上
- 26. Python Errno 2 with Windows 10
- 27. Windows上のPython 2.7.2でsubprocess.call()を使用する際の問題
- 28. ios app open safari with background
- 29. Windows上でのWin32アプリケーションでのUWP Geolocation-APIの使用
- 30. Windows上のイベント「私のJavaアプリケーションでファイルを開く」
py2exeでアクセスできるPythonスクリプトへのファイルパスを渡し、それがすべてでのpythonを必要としないスタンドアロンのexeファイルにプログラムを作るので、やり過ぎであり、それはすべての時間を再コンパイルする必要がありますプログラムは変更されます(開発する場合)。 %python%\ Scripts \には、同じ名前のPythonスクリプトを起動するだけのexeラッパーがあります。誰かがそれについて何かを知っていますか? –