alp*_*ric 16 python windows contextmenu
我想写一个python脚本,它将上传我在Windows资源管理器中选择的任何文件.我们的想法是在Windows资源管理器中选择任何文件,右键单击以显示文件的上下文菜单,然后从那里选择一个命令......例如"上传到Web服务器".
选择该命令后,Python将运行一个脚本,该脚本接收文件路径和要上载的文件的文件名.编写将文件上传到web的Python脚本似乎很简单.目前还不清楚如何在Windows脚本菜单中为Python脚本创建实体.以及如何将文件路径和文件名传递给Python脚本来捕获....请指教!
Gen*_*ume 24
假设Windows 7,如果您打开一个文件夹并在地址栏中输入"shell:sendto",然后按Enter键,您将进入上下文菜单.您可以添加.cmd文件,其中包含以下内容.
@echo off
cls
python C:\Your\File\uploadscript.py %1
Run Code Online (Sandbox Code Playgroud)
这应该执行你的python脚本传入文件(%1)作为参数.在python脚本中,您可以使用:
import sys
sys.argv #sys.argv[1] is the file to upload
Run Code Online (Sandbox Code Playgroud)
这将获取传入的所有参数,因此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
Run Code Online (Sandbox Code Playgroud)
而不是%1
使用%*
.
%1
将传递第一个参数,%*
将传递所有(%n
将传递第 n 个参数...)
@echo off
cls
python C:\Your\File\uploadscript.py %*
Run Code Online (Sandbox Code Playgroud)
请注意,命令行为XP 及更早版本内置了字符限制2047,Windows 7 及更高版本为 8191
要将 python 脚本等内容添加到右键单击上下文菜单,还可以添加寄存器键(regedit,免责声明,在编辑寄存器时显然要小心!)
\HKEY_CLASSES_ROOT\Directory\Background\shell
Run Code Online (Sandbox Code Playgroud)
在那里,添加一个容器,将其命名为您想要在上下文菜单中显示的字符串。在其中添加一个 REG_SZ 类型的键,其中包含例如 python 脚本启动器
C:\Python27\python.exe "C:\path\to\your\script\yourscript.py"
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用上述解决方案将多个文件选择放入 sys.argv,但我认为这也值得在这里提及。
归档时间: |
|
查看次数: |
12695 次 |
最近记录: |