博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python打造命令行工具
阅读量:4126 次
发布时间:2019-05-25

本文共 2127 字,大约阅读时间需要 7 分钟。

与命令行相关的 Python 语言

使用 sys.argv 获取命令行参数

import sys print(sys.argv)

使用 sys.stdinfileinput 读取标准输入

import sys for line in sys.stdin: 	print(line, end="")

使用 getpass 库读取密码

import getpass user = getpass.getuser() passwd = getpass.getpass('your password :') print(user, passwd)

使用 ConfigParse 解析配置文件

要解析一个配置文件,首先需要创建一个 ConfigParser 对象。allow no value 默认取值为 False, 表示在 配置文件中是否允许选项没有值的情况。 默认情况下,所有的选项都应该有一个值。 但是, 在一些特殊的应用中,选项存在就表示取值为真,选项不存在就表示取值为假。

import ConfigParser cf = ConfigParser.ConfigParser(allow_no_value=True)

有了 ConfigParser 对象以后,可以使用 read 方法从配置文件中读取配置内容,也可以 使用 readfp 方法从一个已经打开的文件中读取配置内容

cf.read( 'my.cnf') [’my.cnf ’]

ConfigParser 中有很多的方法,其中与读取配置文件,判断配置项相关的方法有 :

  • sections:返回一个包含所有章节的列表;
  • has_section :判断章节是否存在;
  • items:以元组的形式返回所有选项;
  • options :返回一个包含章节下所有选项的列表;
  • has_option:判断某个选项是否存在;
  • get、 getboolean、 getinit、 getfloat:获取选项的值。

ConfigParser 也提供了许多方法便于我们修改配置文件:

  • remove section:删除一个章节;
  • add section:添加一个章节;
  • remote_option:删除一个选项;
  • set:添加一个选项;
  • write 将 ConfigParser 对象中的数据保存到文件中。

使用 logging 记录日志

在最简单的使用中,我们直接导人 logging 模块, 然后调用它的 debug、 info、 warn、 error 和 critical 等 函数记录日志

  • Logger:日志记录器,是应用程序中能直接使用的接口;
  • Handler:日志处理器,用以表明将日志保存到什么地方以及保存多久;
  • Formatter:格式化,用以配置日志的输出格式。

对于复杂的项目, 一般将日志配置保存到配置文件中:

[loggers] keys = root [handlers] keys = logfile [formatters] keys = generic [ logger_root] handlers = logfile [handler_logfile] class = handlers.TimedRotatingFileHandler args = ('app . log','midnight', 1 , 10) level = DEBUG formatter = generic [formatter_generic] format = %(asctime)s %(levelname)-5.5s [%(name)s:%( lineno)s]%(message)s

使用 click 解析命令行参数

Click 是 Flask 的作者( Armin Ronacher)开发的一个第三方模块,用于快速创建命令 行

我们以 Click 官方文档中的例子来演示 click 的使用。 如下所示:

import click @click.command () @click.option (' --count ', default=1, help = 'Number of greetings.') @click.option(' --name ', prompt = ' Your name ', help= 'The person to greet.') def hello(count, name) : 	'''Simple program that greets NAME for a total of COUNT times .''' 	for x in range(count): 		click.echo(' Hello %s !' %name)if name == 'main':	hello ()

我们没有直接指定 name 这个参数时, Click 会提示我们在交互模式下输入。 如下所示 :

$ python hello.py --count=3 Your name : John Hello John! Hello John ! Hello John !

转载地址:http://myhpi.baihongyu.com/

你可能感兴趣的文章
学习大数据必须掌握的五大核心技术,你都知道哪些?
查看>>
0基础大数据编程怎么学?三个步骤
查看>>
学习大数据需要什么基础?大数据要学哪些内容?
查看>>
在大数据时代下,你准备好要了解大数据的基础知识了吗?
查看>>
如何进入大数据领域,学习路线是什么?
查看>>
顶级资料,大数据自学路线+脑图+学习资史上最全面的学习资料!
查看>>
学习大数据技术有什么用?大数据未来的发展前景好吗?
查看>>
Java程序员转行大数据的优势
查看>>
大数据技术如何学习?这些技巧不能少
查看>>
五年经验的大数据大牛写下的基础心得!
查看>>
JavaScript跨域总结与解决办法
查看>>
关于字符串指针不可修改的问题
查看>>
js中cookie的使用详细分析
查看>>
C++抽象类的纯虚函数
查看>>
关于数据库事务、隔离级别、锁的理解与整理
查看>>
mysql中int、bigint、smallint 和 tinyint的区别与长度
查看>>
Object instanceof Function 还是 Function instance of Object,是真是假
查看>>
死锁的产生、预防和避免
查看>>
linux fork详解
查看>>
C/C++程序内存分配详解
查看>>