如何在Spyder中使用argv

32

我在Spyder中运行以下代码。

我将它输入到一个py文件中,然后简单地点击了运行按钮。

当我尝试运行时,出现了错误:

ValueError:需要多于1个值才能拆包

此处所示,你应该在运行程序之前提供argv变量的输入,但我不知道如何在Spyder中实现这一点?

from sys import argv

script, first, second, third = argv

print "The script is called:", script
print "The first variable is:", first
print "The second variable is:", second
print "Your third variable is:", third

打印出 argv,看起来它是一个标量而不是元组。在调用脚本时,你的命令行参数是什么?你运行了 python ex13.py first 2nd 3rd 吗?确保提供参数。 - Mr. Polywhirl
4个回答

81
要将argv传递给Spyder中的脚本,您需要进入菜单项 运行 > 配置文件 或按下Ctrl+F6键,然后在弹出的对话框中查找名为 命令行选项 的选项,并最终输入要传递给脚本的命令行参数,本例中可能是 one two three

@FTilmann,请仔细查看日期。我的答案是在2014年11月给出的,而Trickster的答案是一个多月前给出的。 - Carlos Cordoba
非常抱歉,我误读了日期(13)为年份。下次会更加小心 - 我已删除了我的评论,因为它显然是不合适的,并基于我的一个愚蠢错误。 - F Tilmann
@CarlosCordoba我知道这个帖子很旧了,但现在有更快的方法吗?还是仍然需要通过Ctrl+F6来完成?谢谢。 - trustory
1
抱歉,在Spyder 4中这个还没有改变。 - Carlos Cordoba

42
除了其他答案中解释的在“运行->配置”中进行配置之外,您还可以直接从控制台使用“runfile”。 请运行以下内容:
   runfile('ex13.py', args='first second third')

21
在Spyder中,依次点击“运行 > 配置”,按照以下图示定义argv值。要运行脚本,只需按下F6键即可。

图示


-16

请阅读页面底部的常见问题解答,它明确提到了这个错误。

常见学生问题

问:当我运行它时,我得到了 ValueError: need more than 1 value to unpack

记住,一个重要的技能是注意细节。如果您查看“What You Should See”部分,您会发现我在命令行上使用参数运行脚本。您应该完全复制我运行它的方式。

确保您运行以下命令:

$ python ex13.py first 2nd 3rd
>> The script is called: ex13.py  
>> Your first variable is: first  
>> Your second variable is: 2nd  
>> Your third variable is: 3rd

您可以确保提供了参数。

if __name__ == '__main__':
    if len(argv) == 4:
        script, first, second, third = argv

        print 'The script is called:', script
        print 'Your first variable is:', first
        print 'Your second variable is:', second
        print 'Your third variable is:', third
    else:
        print 'You forgot the args...'

2
使用MacWindows都可以,但在你的情况下,这个视频可能会更有帮助:Youtube: Python中的命令行参数 - Mr. Polywhirl
11
我认为你现在混淆了@Bazman的问题。他问的是如何将argv传递给在Spyder中运行的脚本,而不是在普通终端中运行。我会在下面添加一个正确的答案。 - Carlos Cordoba
1
@Mr.Polywhirl在这里回答了一个不同的问题。OP特别询问如何在Spyder IDE中使用命令行参数。请参见下面的Carlos答案。 - feedMe
2
这个答案完全不同于所询问的内容! - Dr. Essen
这不是问题的答案 - KansaiRobot
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接