WindowsエクスプローラーでPythonスクリプトにドラッグアンドドロップ
-
02-07-2019 - |
質問
データファイルをPythonスクリプトにドラッグアンドドロップし、ファイルを処理して出力を生成します。 Pythonスクリプトはコマンドラインパラメーターとしてデータファイルの名前を受け入れますが、Windowsエクスプローラーはスクリプトをドロップターゲットにすることを許可しません。
この作業のためにどこかで行う必要のある設定がありますか?
解決
もちろん。 <!> quotというマインドレステクノロジーの記事; WindowsでPythonスクリプトをドロップ可能にする<!> quot; 、レジストリキーを追加してドロップハンドラーを追加できます:
Here <!>#8217; sは、これを行うために使用できるレジストリインポートファイルです。をコピー .regファイルをフォローして実行する (.py拡張子を確認してください Python.Fileにマッピングされます)。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler] @="{60254CA5-953B-11CF-8C96-00AA00B8708C}"
これにより、Pythonスクリプトで、長いファイル名と互換性のあるWSHドロップハンドラーが使用されます。短いファイル名ハンドラーを使用するには、GUIDを86C86720-42A0-1069-A2E8-08002B30309D
に置き換えます。
その投稿のコメントは、<!> quot; no console Python files(.pyw
)<!> quot;または<!> quot;コンパイルされたPythonファイル(.pyc
)<!> quot; Python.NoConFile
およびPython.CompiledFile
クラスを使用します。
他のヒント
単純なシェルスクリプトを記述する(file.bat
)
"C:\python27\python.exe" yourprogram.py %*
where %*
は、スクリプトに渡すすべての引数を表します。
ここで<!> amp;をドラッグします。ターゲットファイルを<=>アイコンにドロップします。
Pythonがインストールされている場合-少なくとも2.6.1-任意のファイルをPythonスクリプトにドラッグアンドドロップすることができます。
import sys
droppedFile = sys.argv[1]
print droppedFile
sys.argv[0]
はスクリプト自体です。 sys.argv[n+1]
はドロップしたファイルです。
py2exeを使用してみてください。 py2exeを使用して、PythonスクリプトをWindows実行可能ファイルに変換します。その後、入力ファイルをWindowsエクスプローラーのスクリプトにドラッグアンドドロップできるはずです。また、デスクトップにショートカットを作成し、入力ファイルをデスクトップにドロップできるはずです。また、Pythonスクリプトがファイルリストを取得できる場合は、スクリプト(またはショートカット)に複数のファイルをドラッグアンドドロップできるはずです。
ファイルのショートカットを作成します。デフォルトでpythonで.pyファイルを開いていない場合は、ショートカットのプロパティに移動し、ショートカットのターゲットを編集して、使用しているpythonバージョンを含めます。例:
ターゲット:C:\ Python26 \ python.exe <!> lt;ショートカットターゲットパス<!> gt;
レジストリを編集したくなかったため、これを投稿しました。.batの回避策は機能しませんでした。
1)。 .py
のショートカットを作成
2)。右クリック-<!> gt;プロパティ
3)。 prefix <!> quot; Target:<!> quot; with <!> quot; python <!> quot;そのため、Pythonコマンドへの引数として.pyを実行します
または
1)。 .bat
を作成します
2)。 python some.py%*
これらのショートカットバージョンは、私がやっていることを行うのに最も簡単です
それ以外の場合、私はそれを.exeに変換しますが、むしろjavaまたはc / c ++を使用します