Python:它有一个argc参数吗?

我用C和C ++编写了相同的程序(打开文本文件和显示内容)。 现在我在Python(在一台Linux机器上)上做同样的事情。

在C程序中,我使用了代码if(argc!= 2){// exit program}

问题:在Python中使用什么来检查参数的数量

#!/usr/bin/python import sys try: in_file = open(sys.argv[1], "r") except: sys.exit("ERROR. Did you make a mistake in the spelling") text = in_file.read() print text in_file.close() 

电stream输出:

./python names.txt =显示文本文件(正确)./python nam =错误消息:从sys.ext行指出(正确)./python =错误消息:从sys.ext行声明(错误:想要它是一个单独的错误消息,说明没有文件名称input

在Python中,一个列表知道它的长度,所以你可以只做len(sys.argv)来获取argv的元素数量。

我经常使用快速肮脏的技巧从命令行读取固定数量的参数:

 [filename] = sys.argv[1:] in_file = open(filename) # Don't need the "r" 

这将为filename分配一个参数,如果没有一个参数,则会引发exception。

你最好查看参数parsing的argparse。

http://docs.python.org/dev/library/argparse.html

只要简单一点,不需要自己沉重负担。

dir(sys)说不。 len(sys.argv)可以工作,但是在Python中,最好是请求宽恕而不是权限

 #!/usr/bin/python import sys try: in_file = open(sys.argv[1], "r") except: sys.exit("ERROR. Can't read supplied filename.") text = in_file.read() print(text) in_file.close() 

工作正常,而且更短。

如果你要退出,那会更好:

 #!/usr/bin/python import sys text = open(sys.argv[1], "r").read() print(text) 

我正在使用print()所以它在2.7以及Python 3中工作。