我目前正在自学Python,只是想(参考下面的示例)简单地了解sys.argv[1]
代表什么。仅仅是要求输入信息吗?
#!/usr/bin/python3.1
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print ('Hello there', sys.argv[1])
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
sys.argv
是一个列表。此列表由命令行创建,它是命令行参数的列表。
例如:
在命令行中输入如下内容
sys.argv
将成为列表['file.py','something']在这种情况下
sys.argv[1] = 'something'
我想指出,以前的回答对用户的知识做了许多假设。这个答案试图在更高的教程级别上回答这个问题。
对于Python的每次调用,
sys.argv
都是命令行上表示参数(用空格分隔)的字符串列表。名称来自C programming convention,其中argv和argc表示命令行参数。在熟悉Python的同时,您还想了解更多关于列表和字符串的信息,但在此期间,有几点需要了解。
您可以简单地创建一个脚本,在参数被表示时打印它们。它还使用列表中的
len
函数打印参数的数量。脚本需要Python2.6或更高版本。如果调用此脚本
print_args.py
,则可以使用不同的参数调用它,以查看发生了什么。如您所见,命令行参数包括脚本名,但不包括解释器名。从这个意义上说,Python将脚本视为可执行文件。如果需要知道可执行文件的名称(本例中是python),可以使用
sys.executable
。从示例中可以看出,如果用户使用引号中封装的参数调用脚本,则可以接收包含空格的参数,因此您得到的是用户提供的参数列表。
现在在Python代码中,您可以使用这个字符串列表作为程序的输入。由于列表是由基于零的整数索引的,因此可以使用list[0]语法获取各个项。例如,要获取脚本名称:
虽然很有趣,但你很少需要知道你的脚本名。要获取文件名脚本之后的第一个参数,可以执行以下操作:
这是一个非常常见的用法,但是请注意,如果没有提供参数,它将失败,并带有索引器错误。
另外,Python允许您引用列表的一个片段,因此要获取用户提供的参数(但没有脚本名)的另一个列表
此外,Python允许您为变量名分配一系列项(包括列表)。因此,如果希望用户始终提供两个参数,可以将这些参数(作为字符串)分配给两个变量:
因此,为了回答您的特定问题,
sys.argv[1]
表示提供给所讨论脚本的第一个命令行参数(作为string
)。它不会提示输入,但如果脚本名后面的命令行上没有提供参数,则它将失败并返回索引器错误。sys.argv[1]包含传递给脚本的第一个command lineargument。
例如,如果脚本名为
hello.py
,则发出:或:
您的脚本将打印:
相关问题 更多 >
编程相关推荐