質問

データファイルを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 ++を使用します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top