web-dev-qa-db-ja.com

WindowsエクスプローラのPythonスクリプトにドラッグアンドドロップします

データファイルをPythonスクリプトにドラッグアンドドロップして、ファイルを処理して出力を生成します。Pythonスクリプトは、コマンドラインパラメータとしてのデータファイル。ただし、Windowsエクスプローラでは、スクリプトをドロップターゲットにすることはできません。

この作業のためにどこかで行う必要があるある種の構成はありますか?

46
grok

承知しました。 「Make Python Scripts Droppable in Windows ")というマインドレステクノロジーの記事 から、レジストリキーを追加してドロップハンドラーを追加できます。

これを行うために使用できるレジストリインポートファイルを次に示します。以下を.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

その投稿のコメントは、「コンソールなしでのドロップを有効にできることを示していますPythonファイル(.pyw) "または"コンパイル済みPythonファイル(.pyc) "を使用してPython.NoConFileおよびPython.CompiledFile クラス。

51
Blair Conrad

簡単なシェルスクリプトを記述(file.bat

"C:\python27\python.exe" yourprogram.py %*

ここで、%*は、スクリプトに渡すすべての引数を表します。

ターゲットファイルをfile.batアイコンにドラッグアンドドロップします。

27
marco

インストールされているpython-少なくとも2.6.1--pythonスクリプトに任意のファイルをドラッグアンドドロップするだけです。

import sys
droppedFile = sys.argv[1]
print droppedFile

sys.argv[0]はスクリプト自体です。 sys.argv[n+1]は、ドロップしたファイルです。

8
halanson

Py2exeを使用してみてください。 py2exeを使用して、pythonスクリプトをWindows実行可能ファイルに変換します。これで、Windowsエクスプローラーでスクリプトに入力ファイルをドラッグアンドドロップできるようになります。また、ショートカットを作成できます。デスクトップ上に入力ファイルをドロップし、それにpythonスクリプトがファイルリストを取得できる場合、スクリプト(またはショートカット)に複数のファイルをドラッグアンドドロップできるはずです。

6
Evan

ファイルのショートカットを作成します。 python .pyファイルをデフォルトで開く必要がない場合は、ショートカットのプロパティに移動し、ショートカットのターゲットを編集してpython =使用しているバージョン例:

ターゲット:C:\ Python26\python.exe <ショートカットターゲットパス>

レジストリを編集したくなかったため、.batの回避策が機能しなかったため、これを投稿します。

2
horta

1)。 .pyのショートカットを作成する
2)。右クリック->プロパティ
3)。接頭辞 "Target:"に "python"を付けると、.pyを引数としてpythonコマンドに実行します
または
1)。 .batを作成する
2)。 python some.py%*

これらのショートカットバージョンは、私がやっていることを行うのに最も簡単です。
それ以外の場合は、.exeに変換しますが、Javaまたはc/c ++を使用するだけです。

0
Puddle