Drag and drop onto Python script in Windows Explorer

◇◆丶佛笑我妖孽 提交于 2019-11-26 10:15:21

问题


I would like to drag and drop my data file onto a Python script and have it process the file and generate output. The Python script accepts the name of the data file as a command-line parameter, but Windows Explorer doesn\'t allow the script to be a drop target.

Is there some kind of configuration that needs to be done somewhere for this work?


回答1:


Sure. From a mindless technology article called "Make Python Scripts Droppable in Windows", you can add a drop handler by adding a registry key:

Here’s a registry import file that you can use to do this. Copy the following into a .reg file and run it (Make sure that your .py extensions are mapped to Python.File).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

This makes Python scripts use the WSH drop handler, which is compatible with long filenames. To use the short filename handler, replace the GUID with 86C86720-42A0-1069-A2E8-08002B30309D.

A comment in that post indicates that one can enable dropping on "no console Python files (.pyw)" or "compiled Python files (.pyc)" by using the Python.NoConFile and Python.CompiledFile classes.




回答2:


write a simple shell script (file.bat)

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

where %* stands for the all arguments you pass to the script.

Now drag & drop your target files on the file.bat icon.




回答3:


With an installed python - at least 2.6.1 - you can just drag and drop any file on a python script.

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

sys.argv[0] is the script itself. sys.argv[n+1] are the files you have dropped.




回答4:


Try using py2exe. Use py2exe to convert your python script into a windows executable. You should then be able to drag and drop input files to your script in Windows Explorer. You should also be able to create a shortcut on your desktop and drop input files onto it. And if your python script can take a file list you should be able to drag and drop multiple files on your script (or shortcut).




回答5:


Create a shortcut of the file. In case you don't have python open .py files by default, go into the properties of the shortcut and edit the target of the shortcut to include the python version you're using. For example:

Target: C:\Python26\python.exe < shortcut target path>

I'm posting this because I didn't want to edit the Registry and the .bat workaround didn't work for me.




回答6:


1). create shortcut of .py
2). right click -> properties
3). prefix "Target:" with "python" so it runs the .py as an argument into the python command
or
1). create a .bat
2). python some.py %*

these shortcut versions are simplest for me to do what i'm doing
otherwise i'd convert it to a .exe, but would rather just use java or c/c++



来源:https://stackoverflow.com/questions/142844/drag-and-drop-onto-python-script-in-windows-explorer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!