第3章:打造命令行工具

1.与命令行相关的Python语言特性

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

import sys
print(sys.argv)

2).使用sys.stdin和fileinput读取标准输入

import sys
def get_content():
    return sys.stdin.readlines()
print(get_content())
使用Ctrl+d退出
fileinput的使用非常简单,大部分情况下,我们直接调用fileinput模块的input方法按行读取内容即可
用for循环遍历文件内容
# cat read_from_fileinput.py
from __future__ import print_function
import fileinput

for line in fileinput.input():
    print(line, end=" ")

# cat /etc/passwd | python read_from_fileinput.py

3).使用SystemExit异常打印错误信息

4).使用getpass库读取密码

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

2.使用configparser解析配置文件

import configparser
cf = configparser.ConfigParser(allow_no_value=True)
cf.read(‘/etc/my.cnf‘)
print(cf.sections())
print(cf.has_section(‘client‘))
print(cf.options(‘client‘))
print(cf.has_option(‘client‘,‘user‘))
print(cf.get(‘client‘,‘user‘))

3.使用argparse解析命令行参数

1).ArgumentParse解析器

import argparse

def _argparse():
    parser = argparse.ArgumentParser(description="This is description")
    parser.add_argument(‘--host‘, action=‘store‘, dest=‘server‘, default="localhost", help=‘connect to host‘)
    parser.add_argument(‘-t‘, action=‘store_true‘, dest=‘boolean_switch‘, default=False, help=‘Set a switch to true‘)
    return parser.parse_args()

def main():
    parser = _argparse()
    print(parser)
    print(‘host = ‘, parser.server)
    print(‘boolean_switch = ‘, parser.boolean_switch)

if __name__ == ‘__main__‘:
    main()

2).模仿MySQL客户端的命令行参数

import argparse

def _argparse():
    parser = argparse.ArgumentParser(description=‘A Python-MySQL client‘)
    parser.add_argument(‘--host‘, action=‘store‘, dest=‘host‘, required=True, help=‘connect to host‘)
    parser.add_argument(‘-u‘, ‘--user‘, action=‘store‘, dest=‘user‘, required=True, help=‘user for login‘)
    parser.add_argument(‘-p‘, ‘--password‘, action=‘store‘, dest=‘password‘, required=True, help=‘password to use when connecting to server‘)
    parser.add_argument(‘-P‘, ‘--port‘, action=‘store‘, dest=‘port‘, default=3306, type=int, help=‘port number to use for connection or 3306 for default‘)
    parser.add_argument(‘-v‘, ‘--version‘, action=‘version‘, version=‘%(prog)s 0.1‘)
    return parser.parse_args()

def main():
    parser = _argparse()
    conn_args = dict(host=parser.host, user=parser.user, password=parser.password, port=parser.port)
    print(conn_args)

if __name__ == ‘__main__‘:
    main()

4.使用logging记录日志

1).日志的作用

诊断日志

审计日志

2).Python的logging模块

import logging

logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warn(‘warn message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)

3).配置日志格式

5.与命令行相关的开源项目

1).使用click解析命令行参数

2).使用prompt_toolkit打造交互式命令行工具

原文地址:https://www.cnblogs.com/allenhu320/p/11323009.html

时间: 2024-10-12 23:22:14

第3章:打造命令行工具的相关文章

windows下的命令行工具babun

什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是A Windows shell you will love! babun的几个特点 使用babun无需管理员权限先进的安装包管理器(类似于linux上面的apt-get或yum)预先配置了Cygwin和很多插件拥有256色的兼容控制台HTTP(S)的代理支持面向插件的体系结构可以使用它来配置你的gi

20个linux命令行工具监视性能(下)

昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给大家吧,第一次写博客,写的不是特别的好,希望大家不要介意,也希望大家觉得有什么不对的地方能够多多指教,毕竟小弟还是初学者.下面我们开始学习下面十个命令吧! 11,Monit –- Linux Process and Services Monitoring Monit  是一个免费开源并且基于web的进程监督实

x264源代码简单分析:x264命令行工具(x264.exe)

本文简单分析x264项目中的命令行工具(x264.exe)的源代码.该命令行工具可以调用libx264将YUV格式像素数据编码为H.264码流. 函数调用关系图 X264命令行工具的源代码在x264中的位置如下图所示. 单击查看更清晰的图片 X264命令行工具的源代码的调用关系如下图所示. 单击查看更清晰的图片 从图中可以看出,X264命令行工具调用了libx264的几个API完成了H.264编码工作.使用libx264的API进行编码可以参考<最简单的视频编码器:基于libx264(编码YUV

NodeJS 安装npm命令行工具

在安装之前,请确保已安装Git和NodeJS. cmd机内命令窗口,输入以下命令: git config --system http.sslcainfo /bin/curl-ca-bundle.crt git clone --recursive git://github.com/isaacs/npm.git cd npm npm install -d 设置国内镜像: npm config set registry http://registry.npmjs.vitecho.com 查看安装信息

Windows 编程,程序编译使用的命令行工具。

Windows 编程,程序编译使用的命令行工具. 1.cl.exe文件是Visual C\C++的编译器,它将程序源代码文件编译为obj文件. 2.rc.exe文件是资源编译器.工程项目中的.rc文件中包含了对程序中所使用资源(菜单.图标等)的描述.rc.exe将.rc格式的文件编译为.res文件,供链接器链接到可执行文件中. 3.link.exe是Windows平台的链接器,它将cl.exe编译生成的obj文件,资源编译器生成的.res文件,以及lib目录下的lib文件等链接成可执行的exe文

GO实现简单(命令行)工具:sftp,文檔压解,RDS备份,RDS备份下载

GO实现简单(命令行)工具:sftp,文檔压解,RDS备份,RDS备份下载 轉載請註明出處:https://www.cnblogs.com/funnyzpc/p/11721978.html 内容提要: 1.远程连接linux执行sftp文件下载 2.window下文件解压缩(tar.gz.zip) 3.window下文件解压缩及带密码解压(zip) 4.window下调用阿里雲RDS api查询备份并下载 5.GO语言命令行工具技巧 首先,写这篇博文的一个出发点是:我无法在window的cmd命

Vue命令行工具vue-cli

前面的话 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构建配置的项目 .本文将详细介绍Vue命令行工具vue-cli 概述 Vue-cli是Vue官方提供的用于初始化Vue项目的脚手架工具.使用Vue-cli有以下几大优势 1.Vue-cli是一套成熟的vue项目架构设计,会跟着Vue版本的更迭而更新 2.Vue-cli提供了一套本地的热加载的

MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具

这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具:mssql-scripter.它支持在SQL Server.Azure SQL DB以及Azure SQL DW中为数据库生成CREATE和INSERT T-SQL脚本. Mssql-scripter是一个跨平台的命令行工具,功能等同于SQL Server Management Studio中的Generate and Publish Scripts Wizard. 咱们能够在Linux.macOS和Windows上使用它

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控