【发布时间】:2017-07-26 07:00:33
【问题描述】:
以下代码采用可在 Python 端检索的单个字符串值。如何用带空格的句子字符串做到这一点?
from sys import argv
script, firstargument = argv
print "The script is called:", script
print "Your first variable is:", firstargument
要运行,我会这样传递参数:
$ python test.py firstargument
哪个会输出
The script is called:test.py
Your first variable is:firstargument
示例输入可以是“程序运行的 Hello world”,我想将其作为命令行参数传递,以存储在“first”变量中。
【问题讨论】:
-
就是这样。
test.py "Hello world the program runs" -
所以它需要引号 "" 不像我的例子。
-
另外你的变量应该是
first而不是firstargument -
@RichardSmith,Python 根本看不到引号;它们由 shell 解释,并告诉它如何将内容拆分到 argv 数组中(这也是 shell 在启动 Python 之前所做的事情)。
-
请参阅
man execv了解用于在 UNIX 上启动另一个程序的底层 C 库调用系列——您会看到任何在 UNIX 上启动另一个程序的程序都需要提供一个 array 的 C 字符串作为参数(并且该数组被命名为argv,除非使用基于 varargs 的调用约定,允许该数组的每个元素作为不同的参数传递给调用)。