我想将我的数据文件拖放到Python脚本上,让它处理文件并生成输出。 Python脚本接受数据文件的名称作为命令行参数,但Windows资源管理器不允许脚本成为放置目标。
是否需要在某处为此工作进行某种配置?
答案 0 :(得分:50)
不确定。从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 drop handler,它与长文件名兼容。要使用短文件名处理程序,请将GUID替换为86C86720-42A0-1069-A2E8-08002B30309D
。
该帖子中的评论表明,可以使用.pyw
启用“无控制台Python文件(.pyc
)”或“编译的Python文件(Python.NoConFile
)”。 Python.CompiledFile
课程。
答案 1 :(得分:26)
编写一个简单的shell脚本(file.bat
)
"C:\python27\python.exe" yourprogram.py %*
其中%*
代表您传递给脚本的所有参数。
现在拖累&将目标文件放在file.bat
图标上。
答案 2 :(得分:8)
安装了python - 至少2.6.1 - 你可以将任何文件拖放到python脚本上。
import sys
droppedFile = sys.argv[1]
print droppedFile
sys.argv[0]
是脚本本身。 sys.argv[n+1]
是您丢弃的文件。
答案 3 :(得分:5)
尝试使用py2exe。使用py2exe将python脚本转换为Windows可执行文件。然后,您应该能够在Windows资源管理器中将输入文件拖放到脚本中。您还应该能够在桌面上创建快捷方式并将输入文件拖放到桌面上。如果您的python脚本可以获取文件列表,您应该能够在脚本(或快捷方式)上拖放多个文件。
答案 4 :(得分:2)
创建文件的快捷方式。如果您没有默认的python open .py文件,请进入快捷方式的属性并编辑快捷方式的目标以包含您正在使用的python版本。例如:
目标:C:\ Python26 \ python.exe<快捷方式目标路径>
我发布这个是因为我不想编辑注册表而且.bat解决方法对我不起作用。
答案 5 :(得分:1)
迟到的答案,但此页面上的所有答案都不适合我。
我设法启用/修复拖放到 .py
脚本使用:
HKEY_CLASSES_ROOT\.py
-> 将默认值设置为 Python.File
HKEY_CLASSES_ROOT\Python.File\Shell\Open
-> 创建一个名为 Command
的键,默认值为 "C:\Windows\py.exe" "%1" %*
CLASSES_ROOT\Applications\py.exe\open\command
-> 如果不存在则创建键并将默认值设置为 "C:\Windows\py.exe" "%1" %*
CLASSES_ROOT\Python.File\ShellEx
-> 使用默认值 DropHandler
创建密钥 {86C86720-42A0-1069-A2E8-08002B30309D}
就是这样。通过将文件拖到 python 脚本上来测试它:
import sys
args = sys.argv
print(args)
答案 6 :(得分:0)
1)。创建.py
的快捷方式
2)。右键单击->属性
3)。在“目标:”前面加上“ python”前缀,以便将.py作为参数运行到python命令中
或
1)。创建一个.bat
2)。 python some.py%*
这些快捷方式版本对我来说是最简单的事情
否则,我会将其转换为.exe,但宁愿只使用Java或c / c ++
答案 7 :(得分:0)
对于那些在.py脚本中使用argv但仍然无法拖动文件执行的人, 这可以通过简单地使用 Python Launcher(带有火箭图标)
来解决脚本属性“打开文件”被设置为python.exe, 不知道脚本需要命令行参数“%*”