Python命令行工具开发之一: 使用基本标准输入编写命令行工具
来源:互联网 发布:大连知行中学怎么样 编辑:程序博客网 时间:2024/06/03 19:00
简介
在实际应用中,经常需要编写自己的命令行工具,来实现一些系统管理的功能。在本系列文章中,将依次介绍通过sys.argv、optparse、argparse模块来创建Python命令行工具,介绍如何整合Shell命令到Python命令行工具中。
使用基本标准输入
创建命令行工具最简单,应该是使用sys模块的sys.argv处理命令行参数。
以一个简单应用为例:
以一个简单应用为例:
#!/usr/bin/python# -*- coding: UTF-8 -*-'''Created on May 16, 2017@author: bob'''import sysif __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 sillybob@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 sillyD:\github\pystudy\PythonStudy\clis>sysargv.py hello world['D:\\github\\pystudy\\PythonStudy\\clis\\sysargv.py', 'hello', 'world']You typed in 2 arguments
总结
使用sys.argv可以非常快速的创建命令行工具,但由于其缺少命令选项解析的功能,因此实际使用中,很少会使用此工具,仅用于创建简单的命令行工具。
阅读全文
0 0
- Python命令行工具开发之一: 使用基本标准输入编写命令行工具
- Python命令行工具开发之二:使用optparse模块编写命令行工具
- python 命令行解析工具 argparse 基本使用
- 使用nodejs开发命令行工具
- Xalan 基本命令行工具
- GNUARM命令行工具基本使用入门
- GNU ARM命令行工具基本使用入门
- Python 命令行工具 -- click
- Python 命令行工具 -- click
- 使用 Python 创建 UNIX 命令行工具
- 熟练使用命令行工具开发Java程序
- 使用 Apache Commons CLI 开发命令行工具
- 使用 Apache Commons CLI 开发命令行工具
- 使用 Apache Commons CLI 开发命令行工具
- 使用Apache Commons CLI开发命令行工具
- 使用 Apache Commons CLI 开发命令行工具
- 使用Apache Commons CLI 开发命令行工具
- 使用Apache Commons CLI开发命令行工具
- 利用Github Pages和Hexo搭建个人博客
- Codeforces 802A Heidi and Library (easy) 题解
- 手机移动端web前端常见问题整理
- const
- 蜂鸣器
- Python命令行工具开发之一: 使用基本标准输入编写命令行工具
- SparkJobServer设计
- (JAVA) Z字形扫描
- 观察者模式
- 【机房重构】--职责链模式实现上机
- (164)定制表达式
- Spark MLlib 入门学习笔记
- HDU1255-覆盖的面积(线段树+扫描线——面积交)
- 关于gcd的函数和过程两种不同写法