拖放到Windows资源pipe理器中的Python脚本

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

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

当然。 从一个名为“在Windows中制作Python脚本”的无意识的技术文章中 ,您可以通过添加一个registry键来添加一个拖放处理程序:

这里有一个registry导入文件,你可以用它来做到这一点。 将以下内容复制到.reg文件并运行(确保.py扩展名映射到Python.File)。

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

这使得Python脚本使用WSH拖放处理程序,它与长文件名兼容。 要使用短文件名处理程序,用86C86720-42A0-1069-A2E8-08002B30309DreplaceGUID。

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

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

 "c:\Python27\python.exe" yourprogram.py %1 

其中%1表示您传递给脚本的第一个参数。

现在拖动你的目标文件到file.bat图标上。

尝试使用py2exe。 使用py2exe将您的python脚本转换为Windows可执行文件。 然后您应该能够在Windows资源pipe理器中将input文件拖放到您的脚本中。 您还应该能够在桌面上创build一个快捷方式,并将input文件放到其上。 如果你的python脚本可以接受一个文件列表,你应该可以在你的脚本(或者快捷方式)上拖放多个文件。

创build文件的快捷方式。 如果你没有默认的Python打开.py文件,进入快捷方式的属性,并编辑快捷方式的目标,以包括你使用的Python版本。 例如:

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

我发布这个,因为我不想编辑registry和.bat解决方法不适合我。

使用安装的python(至less2.6.1),你可以拖放任何文件到python脚本。

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

sys.argv[0]是脚本本身。 sys.argv[n+1]是你删除的文件。