我想编写一个Python脚本,可以上传我在Windows资源pipe理器中select的任何文件。 这个想法是selectWindows资源pipe理器中的任何文件,右键单击以显示文件的上下文菜单,并从那里select一个命令…像“上传到Web服务器”。
在select该命令之后,Python运行一个接收文件path和要上传文件的文件名的脚本。 编写将file upload到networking的Python脚本似乎很简单。 不清楚的是如何在Python脚本的Windows上下文菜单中创build一个实体。 以及如何将文件path和文件名传递给Python脚本来捕捉….请指教!
假设Windows 7,如果你打开一个文件夹并在地址栏中输入“shell:sendto”,然后按回车你会被带到上下文菜单。 您可以在其中添加一个.cmd文件。
@echo off cls python C:\Your\File\uploadscript.py %1
这应该执行你的python脚本传入文件(%1)作为参数。 在python脚本中你可以使用:
import sys sys.argv #sys.argv[1] is the file to upload
这将得到所有传入的参数,所以sys.argv[1]
应该让你传入的文件。我测试了这个,它的工作原理。 您需要.cmd文件而不是直接转到.py文件的原因是因为.py文件不会显示在“发送到”菜单中。
有关获取文件传递的更多信息在这里:
在Python中接受文件参数(从发送到上下文菜单)
编辑:添加脚本调用多个文件。 请注意,这将调用每个单独文件上的python脚本,如果要将所有文件作为参数发送到python脚本,则需要做更多的工作。 如果你想做更高级的事情,你需要研究批处理脚本。
@echo off cls :upload_loop IF "%1"=="" GOTO completed python C:\Your\File\uploadscript.py %1 SHIFT GOTO upload_loop :completed
%1
代替%1
。
%1
将会在第一个参数中传递, %*
将全部传递( %n
将在第n个参数中传递)
@echo off cls python C:\Your\File\uploadscript.py %*
请注意,命令行内置了XP和更高版本的字符限制 2047,Windows 7和更高版本的内置了8191
要添加诸如python脚本之类的东西来右键单击上下文菜单,也可以添加注册表项(regedit)
\HKEY_CLASSES_ROOT\Directory\Background\shell
在那里,添加一个容器,将其命名为你想要显示在上下文菜单中的字符串。 在其中添加一个类型为REG_SZ的键,其中包含例如python脚本启动器
C:\Python27\python.exe "C:\path\to\your\script\yourscript.py"
我不知道如何使用上述解决方案将多个文件选择到sys.argv中,但我认为这也值得一提。
这个网页添加Windows上下文菜单动作有一个很好的Python脚本,将注册一个上下文菜单将文件路径传递到您的Python脚本。 我还没有尝试,但看起来很容易修改这个样本,你需要做的。 另外,这种方法是一个点击少于sendTo解决方案,我猜。