我想写一个python脚本,它可以上传我在Windows资源管理器中选择的任何文件。这个想法是在Windows资源管理器中选择任何文件,右键单击以显示文件的上下文菜单,然后从那里选择一个命令......类似于“上传到Web服务器”。
选择命令后,Python运行一个脚本,该脚本接收要上传的文件的文件路径和文件名。编写将文件上传到Web的Python脚本似乎很简单。不清楚的是如何在Windows上下文菜单中为Python脚本创建一个实体。以及如何将文件路径和文件名传递给Python脚本以捕获....请指教!
7条答案
按热度按时间3phpmpom1#
假设Windows 7,如果你打开一个文件夹,并在地址栏中键入“shell:sendto”,然后按Enter键,你将被带到上下文菜单。你可以添加一个.cmd文件,其中包含以下内容。
这将执行python脚本,并将文件(%1)作为参数传入。在python脚本中,您可以用途:
这会得到所有传入的参数,所以
sys.argv[1]
应该会得到传入的文件。我测试了这个方法,它可以工作。你需要.cmd文件而不是直接去.py的原因是因为.py文件不会显示在发送菜单中。有关获取传入的文件的更多信息,请参见此处:
Accepting File Argument in Python (from Send To context menu)
编辑:添加脚本来调用多个文件。注意,这会调用每个单独文件的python脚本,如果你想将所有文件作为参数发送给python脚本,那么你需要做更多的工作。如果你想做更高级的事情,你需要研究批处理脚本。
l3zydbqr2#
使用
%*
代替%1
。%1
将传递第一个参数,%*
将传递所有参数(%n
将传递第n个参数...)请注意,命令行内置了character limits 2047(适用于XP及更早版本)和8191(适用于Windows 7及更高版本
14ifxucb3#
要想在右键菜单中添加Python脚本之类的东西,还可以在
在那里,添加一个容器,将其命名为您希望出现在上下文菜单中的字符串。
我不知道如何使用上述解决方案将多个文件选择导入sys.argv,但我认为这也值得在这里提及。
nbewdwxp4#
这个网页Adding Windows context-menu actions有一个很好的python脚本,它将注册一个上下文菜单,将文件路径传递给你的python脚本。我没有尝试过,但它看起来很容易修改这个例子,你需要做什么。另外,这种方式是一个点击比sendTo解决方案,我猜。
k10s72fa5#
作为一个初学程序员,这些答案都没有帮助。我问了一个朋友,他帮了我。
以下是我的解决方案:
在注册表编辑器中创建快捷方式:
1.按Windows按钮+ R,在字段中键入“regedit”
1.选择需要放置文件的位置(我建议“HKEY_CURRENT_USER\AllFilesystemObjects\shell & HKEY_CURRENT_USER\AllFilesystemObjects\shellex”。就像您的快捷方式显示在文件,文件夹和程序上一样)
1.在该文件夹中创建新密钥
1.在新文件夹中创建一个新密钥,并将i称为“command”
1.在“命令”中,你现在把你需要执行的文件路径。在它的末尾,你放一个“%1”
它应该看起来像这样:“C:\Python\folder\file.py”“%1”(是的,它可以使用python文件,但您也可以使用cmd文件)
(We有一个错误,所以他改变了它有点对我目前的赞扬文件,它看起来像这样:C:\Users\UserName\AppData\Local\Programs\Python\Python38\python.exe“C:\Python\folder\file.py”“%1”
原因我不能告诉你,但它的工作原理:D)
对于python文件,我使用了以下代码:
有了这个,你就有了快捷方式和导入路径所需的一切。
doinxwow6#
除了前面的答案,还可以在SendTo文件夹中使用python脚本。
这允许:
try... except
块,以防你的库已经移动或诸如此类;for
循环。示例:
我建议将此脚本保持最小化,并仅提供一个构建良好的Python包的启动,并提供版本控制和经典的开发方法。
9bfwbjaz7#