sys.argv&的区别argv的?

时间:2014-02-08 07:11:41

标签: python python-2.7 python-3.x

我不明白sys.argvargv之间的区别,网上没有任何东西能让我理解这个概念。如果两者都是一样的!我们何时使用sys.argv以及何时使用argv

如果不是sys.argv。我知道什么是argv

2 个答案:

答案 0 :(得分:9)

它们是相同的,它只取决于你如何编写import语句。

import sys

如果您这样写,那么您必须参考sys.argv

from sys import argv
from sys import *

如果你写了其中任何一个,那么你可以简单地写argv而没有sys.限定符。

答案 1 :(得分:1)

同样的事情,前者;看看会发生什么的不同论点。

from __future__ import print_function
import sys
print(sys.argv, len(sys.argv))

> python print_args.py
['print_args.py'] 1

> python print_args.py foo and bar
['print_args.py', 'foo', 'and', 'bar'] 4

> python print_args.py "foo and bar"
['print_args.py', 'foo and bar'] 2

> python print_args.py "foo and bar" and baz
['print_args.py', 'foo and bar', 'and', 'baz'] 4

如您所见,命令行参数包括脚本名称,但不包括解释器名称。从这个意义上说,Python将脚本视为可执行文件。如果您需要知道可执行文件的名称(在本例中为python),则可以使用sys.executable。