Python命令行工具开发之一: 使用基本标准输入编写命令行工具

简介

在实际应用中,经常需要编写自己的命令行工具,来实现一些系统管理的功能。在本系列文章中,将依次介绍通过sys.argv、optparse、argparse模块来创建Python命令行工具,介绍如何整合Shell命令到Python命令行工具中。

使用基本标准输入

创建命令行工具最简单,应该是使用sys模块的sys.argv处理命令行参数。
以一个简单应用为例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

'''
Created on May 16, 2017

@author: bob
'''

import sys

if __name__ == '__main__':
    #Python indexes start at Zero, so let's not count the command itself
    #which is sys.argv[0]
    print sys.argv
    num_arguments = len(sys.argv) - 1
    
    #if there are no arguments to the command, send a message to standard error
    if num_arguments == 0:
        print "Hi, type in an option silly"
    else:
        print "You typed in", num_arguments, "arguments"
命令行参数以列表的形式传递给Python脚本。argv[0]存储的脚本名(脚本名是否提供全路径信息与平台有关),输入参数的索引从1开始,即输入参数存储在sys.argv[1:]里。
在Ubuntu 16.04系统上的运行结果如下:
bob@ubuntu:~$ ./sysargv.py
['./sysargv.py'] 
Hi, type in an option silly
bob@ubuntu:~$ ./sysargv.py hello world
['./sysargv.py', 'hello', 'world'] 
You typed in 2 arguments
在Win 7系统上的运行结果如下:
D:\github\pystudy\PythonStudy\clis>sysargv.py
['D:\\github\\pystudy\\PythonStudy\\clis\\sysargv.py']
Hi, type in an option silly
D:\github\pystudy\PythonStudy\clis>sysargv.py hello world
['D:\\github\\pystudy\\PythonStudy\\clis\\sysargv.py', 'hello', 'world']
You typed in 2 arguments

总结

使用sys.argv可以非常快速的创建命令行工具,但由于其缺少命令选项解析的功能,因此实际使用中,很少会使用此工具,仅用于创建简单的命令行工具。

你可能感兴趣的:(Python,Python入门与提高)