1. 将命令行参数保存在列表中,注意argv[0]是程序本身的名字:

import sys

print(sys.argv)

print(sys.argv[1])

python argv.py localhost 3306

['argv.py', 'localhost', '3306']

localhost

2. 使用sys.stdin和fileinput读取标准输入,并打印在终端类似shell中的管道

import sys

for line in sys.stdin:

print(line,end="")

可以像shell脚本一样,通过标准输入给程序输入内容

python read_stdin.py /passwd

python read_stdin.py -

cat /etc/passwd |python read_stdin.py

将标准输入保存在一个列表中

import sys

def get_content():

return sys.stdin.readlines()

print(get_content())

python readlines_stdin.py

['hello ', 'world ']

3. 利用fileinput读取标准输入

#/usr/bin/env python

#coding=utf-8

import fileinput

for line in fileinput.input():

print(line,end="")

python file_input1.py /etc/passwd

python file_input1.py /passwd

python file_input1.py /etc/passwd /etc/my.cnf

fileinput常用于从文件中读取内容

import fileinput

for line in fileinput.input():

meta = [fileinput.filename(), fileinput.fileno(), fileinput.filelineno(),

fileinput.isfirstline(), fileinput.isstdin()]

print(*meta, end="")

print()

print(line, end="")

4. 使用getpass读取密码:

import getpass

user=getpass.getuser()

passwd=getpass.getpass('you password: ')

print(user,passwd)

可以避免输入密码被看见

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

agrparse能够根据从sys.arg中解析参数,并自动生成帮助信息

from __future__ import print_function

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',

default=False, dest='boolean_switch', 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()

格式:rgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

name:参数的名字

action: 遇到参数时的动作,默认为store,store_xx,表示将参数转换为xx

nargs:参数的个数

dest:解析后的参数的名字

type:参数的类型

6. 使用Click创建命令行解析

Click比较argparse更加的快速和简单

pip inst 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()

commond让函数成为命令行接口

option:增加命令行选项

echo:输出结果

prompt:如果没有指定name这个参数时,会进入交互模式下输入

也可以像Linux中的fc一样进入默认编辑器

import click

message = click.edit()

print(message,end="")

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

pip installprompt_toolkit

from prompt_toolkit import prompt

while True:

user_input = prompt('>')

print(user_input)

Linux下的快捷键都可以使用,输入时退格键,也不会出现乱码

加入历史输入功能

from __future__ import unicode_literals

from prompt_toolkit import prompt

from prompt_toolkit.history import FileHistory

while True:

user_input = prompt('>',

history=FileHistory('history.txt'),

)

print(user_input)

加入自动提示功能

from __future__ import unicode_literals

from prompt_toolkit import prompt

from prompt_toolkit.history import FileHistory

from prompt_toolkit.auto_suggest import AutoSuggestFromHistory

while True:

user_input = prompt('>',

history=FileHistory('history.txt'),

auto_suggest=AutoSuggestFromHistory(),

)

print(user_input)

会以按字体进行提示

加入自动补全功能:

from __future__ import unicode_literals

from prompt_toolkit import prompt

from prompt_toolkit.history import FileHistory

from prompt_toolkit.auto_suggest import AutoSuggestFromHistory

from prompt_toolkit.contrib.completers import WordCompleter

SQLCompleter = WordCompleter(['select', 'from', 'insert', 'update', 'delete', 'drop'],

ignore_case=True)

while True:

user_input = prompt('SQL>',

history=FileHistory('history.txt'),

auto_suggest=AutoSuggestFromHistory(),

completer=SQLCompleter,

)

print(user_input)

按tab键就可以自动补全

python 命令行参数-Python处理命令行参数相关推荐

  1. 命令行运行Python脚本时传入参数的三种方式

    三种常用的方式 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. python script.py 0,1,2 10 python script ...

  2. shell python -c_python, shell, C/C++ 从命令行获得参数

    前言: 在给nagios开发监控插件的时候,不论是用哪种语言写插件,最好能从命令行获得参数(警告值和报警值:-w warning_value -c critical_value),而不是在插件里把这两 ...

  3. python 命令行参数-python获取命令行参数的方法(汇总)

    介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...

  4. python 命令行参数-python中命令行参数

    python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...

  5. python 命令行参数-Python 中最好用的命令行参数解析工具

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要一个命令行参数解析的 ...

  6. python 命令行参数-python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...

  7. python 命令行参数-Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数: ...

  8. python从命令行获取参数_python从命令行获取参数操作

    python从命令行获取参数 一: 简单用法 从命令行获取参数两种方式: 1.通过sys.argv参数获取:代码如下: # -*- coding: utf-8 -*- import sys #获取输入 ...

  9. 【Python】 linux中python命令的命令行参数

    Python命令行参数 原文地址:http://blog.163.com/weak_time/blog/static/25852809120169333247925/ Python的命令行参数,提供了 ...

最新文章

  1. Go 学习笔记(32)— 类型系统(命名类型、未命名类型、底层类型、类型强制转换、类型别名和新声明类型)
  2. linux e盘路径,Linux添加路径到PATH环境变量
  3. Ribbon源码解析(一)
  4. python 多线程入门试验
  5. 济南市软件测试工程师的工资水平,软件测试工程师工资怎么样?高吗?
  6. margin的简单应用
  7. oracle空值判断 =,Oracle,sql server的空值(null)判断
  8. ulink php,【转载】15款USB数字界面横向评测(对比顶级CD转盘)!多看点!
  9. aix java 版本_AIX系统安装JDK
  10. python 对象是什么概念
  11. 将word文档转换为图片格式的PDF
  12. 如何解决eclipse桌面快捷方式无法打开,jre or jkd的问题
  13. Android彩信发送
  14. 极速版迅雷 服务器响应超时,迅雷登录超时怎么回事_迅雷经常登录超时如何解决...
  15. 怎么把JAVA32位改成64位_win732位改成64位教程
  16. idea右侧没有maven,main方法无启动图标解决方法
  17. ARM嵌入式体系架构(理论篇)
  18. MySQL对时间戳的格式化
  19. hdu 1170 Balloon Comes!(水题)
  20. 产品推荐丨边缘视觉处理AI模组

热门文章

  1. fixing macOS Sierra fatal error: 'openssl/opensslv.h' or 'openssl/aes.h' file not found
  2. 信息检索导论的课件——http://home.ustc.edu.cn/~zhufengx/ir/pdf/
  3. BZOJ1217: [HNOI2003]消防局的设立
  4. UNIX环境高级编程第三章
  5. RP2836 OUT0-OUT7 对应关系
  6. Mysql中经常出现的乱码问题
  7. wordpress评论插件:多说
  8. 国际财务报告准则 IFRS 与信息系统
  9. GC分析工具使用-gceacy分析堆栈
  10. sklearn之随机森林