我想将我的数据文件拖放到Python脚本上,让它处理文件并生成输出.Python脚本接受数据文件的名称作为命令行参数,但Windows资源管理器不允许脚本成为放置目标.
是否有某种配置需要在这个工作的某个地方完成?
当然.从一篇名为"在Windows中制作Python脚本可删除"的无心技术文章中,您可以通过添加注册表项来添加删除处理程序:
这是一个注册表导入文件,您可以使用它来执行此操作.将以下内容复制到.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
写一个简单的shell脚本(file.bat)
"C:\python27\python.exe" yourprogram.py %*
其中%1代表您传递给脚本的第一个参数.
现在将%目标文件拖放到file.bat图标上.
使用已安装的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脚本可以获取文件列表,您应该能够在脚本(或快捷方式)上拖放多个文件.