使用 PyCharm 编写参数脚本 - 以困难的方式学习 Python



我开始学习Python,学习Python很难,我面临着ex13的一些问题。如果这是我的错误或因为 PyCharm 的工作方式,我现在就想这样做。

基本上为了使脚本按照练习的建议工作,我看到我必须使用运行>编辑配置在 PyCharm 中手动输入参数名称

我把"第一"第二"和"第三"

但是我想将raw_input和argv结合起来,这样我就可以让用户选择参数的名称。这是我写的:

from sys import argv
first = raw_input("First argument: ")
second = raw_input("Second argument: ")
third = raw_input("Third argument: ")
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

它运行,但返回:

ValueError: need more than 1 value to unpack

似乎在 PyCharm 中我必须手动输入所有脚本参数?没有办法将其与原始输入相结合?

感谢您的帮助。

注释查看Joran的答案,该答案显示了使用命令行参数和提示用户输入的良好组合。以下是正在发生的事情的细分:

这是 PyCharm

中的预期行为,用于指定您希望 PyCharm 用来执行脚本的参数。把它想象成PyCharm做这样的事情:

python my_script.py

但是,PyCharm 不知道您要传递的参数,您需要提供此参数,因此它知道如何运行您的脚本。如果您查看 PyCharm 窗口底部附近,则会显示一个Terminal选项卡。您可以使用它来快速执行脚本并提供参数。

其次,您收到错误的原因是因为您在尝试使用argv时没有正确处理脚本输入。

您正在使用 raw_input 进行混合,它在 Python 脚本运行时接收用户输入,而不是在运行 Python 脚本时将参数引入 Python 脚本的argv

所以,你在这里实际要做的,不是使用raw_input,而只是argv。这是一个小演示来澄清这一切:

from sys import argv
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

现在,进入命令提示符并执行以下操作:

python my_script one two three

您将获得:

The script is called: my_script.py
Your first variable is: one
Your second variable is: two
Your third variable is: three

这是一个非常简化的示例,您可能需要添加一些对输入的处理,否则您将在脚本的不同输入中遇到很多错误。有了这个,我建议也许看看argparse

我不确定我是否理解这个问题...但是如果有 3(或更多)...否则它将提示和拆分的方式与 shell 拆分命令行参数的方式相同

import shlex # shlex.split will split the string the same way that the shell would for command line args
if len(sys.argv) < 3:
   args = (list(sys.argv) + shlex.split(raw_input("Enter Args:")))[:3]
else:
   args = sys.argv[:3]
print "Using Args:",args
one,two,three = args

最新更新