右键命令传递参数给Python脚本

1 投票
1 回答
3624 浏览
提问于 2025-04-17 13:08

我在工作中重写一个Python脚本,这个脚本的功能之一是搜索我右键点击的文件夹里的图像序列。我觉得Python的部分我还不错,但右键点击的部分就不太清楚了。我可以在注册表中创建一个右键点击的按钮,但我不太确定怎么把我右键点击的文件夹路径传递给我的Python脚本。我希望这个参数能包含文件夹的路径。我找到了一篇关于这个的帖子,但对我来说不太管用……可能是因为他们是在XP系统上做的吧?我不太确定。(链接在下面)

在Windows上下文菜单中复制路径

我还找到了一段代码片段,我觉得之前可能是用作右键点击命令的……

@="\"C:\Python26\python.exe\" \"L:\HAL\Func\search\search.py\" %L"

有人能给我解释一下吗?我明白它首先会运行Python,然后再运行脚本……但是@=和%L是什么呢?我真的很想理解这个,昨天我花了一整天试图弄明白,但就是找不到太多信息。

这是我想传递参数的Python脚本

import sys
import os


def __main__(argv = sys.argv):

    fileName = argv[1]
    print argv
    print fileName

1 个回答

0

这里的 %L 可能应该用 %1。也就是说,你是把传给这个命令的第一个参数,作为参数传给你的 Python 脚本。这个参数就是你右键点击的文件名。

如果你的 Python 脚本可以接受多个参数(也就是可以处理多个选中的文件),你可以在这里用 %*

行首的 @ 表示命令行不会在屏幕上显示,所以它不会为了执行这个命令而打开一个控制台窗口。(不过,如果 Python 脚本有输出内容,窗口还是会出现的。)

至于后面的 = 符号,我不太确定它的用法;我也没见过这个,查起来也挺难的。

撰写回答