2012-02-16 45 views
1

我正在重写一个python脚本在工作中,它所做的一部分是在一个文件夹中搜索,我右键单击图像序列..我认为我的东西很好,但右键没有那么多。我可以在注册表中创建一个右键单击按钮,但我不确定如何将我右键单击该文件夹的参数传递给我的python脚本。我希望参数具有文件夹的路径。我发现了一篇关于这个帖子的文章,但它不适合我..也许是因为他们在使用xp?我不能确定。(下面的链接)右键单击命令传递参数到Python脚本

Copy as path in windows context menu

我也发现了这个剪断,它的代码是什么,我认为是之前被用作richt单击命令..

@ = “\”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 
+0

有什么问题? – 0x90 2012-02-16 18:31:23

+0

我试图添加一个righ-click命令来运行我的脚本,并将文件路径传递到我右键单击的文件夹作为我的脚本的参数。这里的python脚本只是测试,看看我是否成功从右键单击命令获取文件路径。 – Manley 2012-02-16 18:36:14

回答

0

%L也许应该是%1。也就是说,您正在传递给此命令的第一个参数,并将它作为参数传递给您的Python脚本。这将是您右键单击的文件的名称。

如果您的Python脚本准备接受多个参数(即多个选定的文件),那么您可以在那里使用%*

@在行的开头意味着命令行不会显示在屏幕上,所以它不会打开控制台窗口来运行该命令。 (然而,如果Python脚本生成任何输出,窗口仍然会出现。)

不确定接下来的=符号;我没有看到它,它很难谷歌它。

+0

太棒了,非常感谢你帮助我理解这一点。我认为它的工作,我的脚本现在抛出一个错误,但它似乎正在传递一些东西,这对我来说是个好消息!感谢一堆:)。有没有一个你知道的关于这个文件的网站?我对命令行代码不太了解:( – Manley 2012-02-16 19:28:33

+0

我看到python是你首选的瑞士军刀。你能否离手知道为什么当上面的脚本从右键单击时收到参数时出现以下错误: C:\ Python27 \ python.exe:在'\\'中找不到'__main__'模块 – Manley 2012-02-16 19:53:34

+0

您发布的代码中没有关于__main__'模块的内容,所以不知道。单独的问题,与您的完整的代码和完整的错误信息。 – kindall 2012-02-16 20:10:32