在Windows资源管理器中拖放到Python脚本

问题描述 投票:45回答:6

我想将我的数据文件拖放到Python脚本上,让它处理文件并生成输出。 Python脚本接受数据文件的名称作为命令行参数,但Windows资源管理器不允许脚本成为放置目标。

是否有某种配置需要在这个工作的某个地方完成?

python windows drag-and-drop windows-explorer
6个回答
51
投票

当然。从mindless technology article called "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

该帖子中的评论表明,可以通过使用.pyw.pyc类来启用“无控制台Python文件(Python.NoConFile)”或“编译的Python文件(Python.CompiledFile)”。


27
投票

写一个简单的shell脚本(file.bat

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

其中%*代表您传递给脚本的所有参数。

现在将目标文件拖放到file.bat图标上。


8
投票

使用已安装的python(至少2.6.1),您只需将任何文件拖放到python脚本上即可。

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

sys.argv[0]是剧本本身。 sys.argv[n+1]是您丢弃的文件。


6
投票

尝试使用py2exe。使用py2exe将python脚本转换为Windows可执行文件。然后,您应该能够在Windows资源管理器中将输入文件拖放到脚本中。您还应该能够在桌面上创建快捷方式并将输入文件拖放到桌面上。如果您的python脚本可以获取文件列表,您应该能够在脚本(或快捷方式)上拖放多个文件。


2
投票

创建文件的快捷方式。如果你没有默认的python open .py文件,请进入快捷方式的属性并编辑快捷方式的目标以包含你正在使用的python版本。例如:

目标:C:\ Python26 \ python.exe <快捷方式目标路径>

我发布这个是因为我不想编辑注册表,而.bat解决方法对我不起作用。


0
投票

1)。创建.py的快捷方式 2)。右键单击 - >属性 3)。使用“python”前缀“Target:”,因此它将.py作为参数运行到python命令中 要么 1)。创建一个.bat 2)。 python some.py%*

这些快捷版本对我来说最简单,我正在做的事情 否则我会将它转换为.exe,但宁愿只使用java或c / c ++

© www.soinside.com 2019 - 2024. All rights reserved.