当前位置:嗨网首页>书籍在线阅读

04-第2步_处理命令行参数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第2步:处理命令行参数

让你的代码看起来像这样:

#! python3
# mapIt.py - Launches a map in the browser using an address from the
# command line or clipboard.
import webbrowser, sys 
if len(sys.argv)  >  1:
    # Get address from command line.
    address  =  ' '.join(sys.argv[1:])
#  TODO:  Get  address  from  clipboard.

在程序的#!行之后,需要导入 webbrowser 模块来加载浏览器;以及导入 sys 模块,用于读入可能的命令行参数。 sys.argv 变量保存了程序的文件名和命令行参数的列表。如果这个列表中不只有文件名,那么 len(sys.argv) 的返回值就会大于1,这意味着确实提供了命令行参数。

命令行参数通常用空格分隔,但在这个例子中,你希望将所有参数解释为一个字符串。因为 sys.argv 是字符串的列表,所以你可以将它传递给 join() 方法,这将返回一个字符串。你不希望程序的名称出现在这个字符串中,因此不是使用 sys.argv ,而是使用 sys.argv[1:] 来去掉这个数组的第一个元素。这个表达式求值得到的字符串保存在 address 变量中。

如果运行程序时在命令行中输入以下内容:

mapit 870 Valencia St, San Francisco, CA 94110

sys.argv 变量将包含这样的列表值:

 ['mapIt.py', '870', 'Valencia', 'St, ', 'San', 'Francisco, ', 'CA', '94110']

address 变量将包含字符串 '870 Valencia St, San Francisco, CA 94110'