在资源管理器中将文件拖放到Python脚本上
我想把我的数据文件拖到一个Python脚本上,让它处理这个文件并生成输出。这个Python脚本可以接受数据文件的名字作为命令行参数,但Windows资源管理器不允许我把脚本当作拖放的目标。
有没有什么设置需要做才能实现这个功能呢?
8 个回答
19
如果你已经安装了Python,版本至少是2.6.1,你可以直接把任何文件拖到一个Python脚本上。
import sys
droppedFile = sys.argv[1]
print droppedFile
sys.argv[0]
代表的就是这个脚本本身。而sys.argv[n+1]
就是你拖进去的文件。
46
写一个简单的脚本文件(file.bat
)
"C:\python27\python.exe" yourprogram.py %*
这里的 %*
代表你传给这个脚本的所有参数。
现在,把你想要处理的文件拖到 file.bat
的图标上。
63
当然可以。从一篇叫做“在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.NoConFile
和 Python.CompiledFile
类来启用对“无控制台的Python文件(.pyw
)”或“编译后的Python文件(.pyc
)”的拖放支持。