Python 命令行参数

Python 提供了 getopt 模块来获取命令行参数。

$ python test.py arg1 arg2 arg3

Python 中也可以使用 sys 的 sys.argv 来获取命令行参数:

sys.argv 是命令行参数列表。

len(sys.argv) 是命令行参数个数。

注:sys.argv[0] 表示脚本名。

实例

test.py 文件代码如下:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import sys

print '参数个数为:', len(sys.argv), '个参数。'

print '参数列表:', str(sys.argv)

执行以上代码,输出结果为:

$ python test.py arg1 arg2 arg3

参数个数为: 4 个参数。

参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

getopt模块

getopt模块是专门处理命令行参数的模块,用于获取命令行选项和参数,也就是sys.argv。命令行选项使得程序的参数更加灵活。支持短选项模式(-)和长选项模式(--)。

该模块提供了两个方法及一个异常处理来解析命令行参数。

getopt.getopt 方法

getopt.getopt 方法用于解析命令行参数列表,语法格式如下:

getopt.getopt(args, options[, long_options])

方法参数说明:

args: 要解析的命令行参数列表。

options : 以字符串的格式定义,options 后的冒号 : 表示如果设置该选项,必须有附加的参数,否则就不附加参数。

long_options : 以列表的格式定义,long_options 后的等号 = 表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。

该方法返回值由两个元素组成: 第一个是 (option, value) 元组的列表。 第二个是参数列表,包含那些没有 - 或 -- 的参数。

另外一个方法是 getopt.gnu_getopt,这里不多做介绍。

Exception getopt.GetoptError

在没有找到参数列表,或选项的需要的参数为空时会触发该异常。

异常的参数是一个字符串,表示错误的原因。属性 msg 和 opt 为相关选项的错误信息。

实例

假定我们创建这样一个脚本,可以通过命令行向脚本文件传递两个文件名,同时我们通过另外一个选项查看脚本的使用。脚本使用方法如下:

usage: test.py -i -o

test.py 文件代码如下所示:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import sys, getopt

def main(argv):

inputfile = ''

outputfile = ''

try:

opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])

except getopt.GetoptError:

print 'test.py -i -o '

sys.exit(2)

for opt, arg in opts:

if opt == '-h':

print 'test.py -i -o '

sys.exit()

elif opt in ("-i", "--ifile"):

inputfile = arg

elif opt in ("-o", "--ofile"):

outputfile = arg

print '输入的文件为:', inputfile

print '输出的文件为:', outputfile

if __name__ == "__main__":

main(sys.argv[1:])

执行以上代码,输出结果为:

$ python test.py -h

usage: test.py -i -o

$ python test.py -i inputfile -o outputfile

输入的文件为: inputfile

输出的文件为: outputfile

python命令行参数 空格_Python 命令行参数相关推荐

  1. python命令行参数 空格_Python - 命令行参数

    前言 每个脚本或者命令行程序都可以输入一些参数,通常有两种规范. 短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开,长度任意,可以用引 ...

  2. python命令行参数作用_Python命令行参数解析模块argparse

    前言 更多内容,请访问我的 个人博客. 以前 optparse 比较火,但是在python2.7版本后,官方不再维护这个模块,转而大力支持 argparse . argparse 模块可以让人轻松编写 ...

  3. c2665 “initgraph”: 2 个重载中没有一个可以转换所有参数类型_Python 命令行之旅:深入 click 之参数篇...

    作者:HelloGitHub-Prodesire 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 一.前言 在上一篇文章中,我们初步掌握了 click 的简单用法,并了解到它 ...

  4. python 命令行解析模块_Python命令行解析模块详解

    python2.7 怎么解析命令行输入的中文参数 本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, ...

  5. python 拆分excel工作表_Python几行代码轻松拆分表格

    Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...

  6. python按行拆分表格_Python几行代码轻松拆分表格

    Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...

  7. python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...

    python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...

  8. python去除字符串两边空格_Python去除字符串两端空格的方法

    Python去除字符串两端空格的方法 目的 获得一个首尾不含多余空格的字符串 方法 可以使用字符串的以下方法处理: string.lstrip(s[, chars]) Return a copy of ...

  9. python去除字符串两边空格_python字符串去除两端空格

    python中如何去掉字符串的空格 1.strip():把头和尾的空格去掉 2.lstrip():把左边的空格去掉 3.rstrip():把右边的空格去掉 4.replace('c1','c2'):把 ...

最新文章

  1. 使用VS2005进行代码覆盖率分析
  2. [日记]一个人去散步
  3. 网站权重增加需要做的
  4. SpringBoot 之 MVC
  5. 45 jump game II(贪心)
  6. .NET中生成动态验证码
  7. 机器学习和人工智能的初学指南
  8. 19 条法则,教你写出火爆 GitHub 的烂代码!
  9. 并查集——关押罪犯(洛谷 P1525)
  10. PID控制的输入量与输出量的关系
  11. linux c 守护线程,关于守护线程
  12. 我的职业规划,大家给点意见吧!
  13. 中文分词与马尔科夫模型之二:隐马尔科夫模型与维特比
  14. django中间件修改,以及TypeError: object() takes no parameters的异常处理
  15. java plus in_mybatis plus in方法使用详解
  16. cad对计算机专业的用处,CAD软件的特点和用途
  17. Python-Scrapy 获取历史双色球开奖号码
  18. 基于SimpleLink CC26x2R LaunchPad的RTLS实时定位系统搭建
  19. Flink-电商用户行为分析(网站独立访客数(UV)的统计)
  20. 20个优秀手机界面扁平化设计,让你一秒看懂扁平化

热门文章

  1. usb audio知识点
  2. Oops快速定位代码行方法
  3. 如何成为一名真正专业的程序员
  4. activemq之Windows安装
  5. 找不到ffmpeg.dll无法继续执行代码怎么办_2020年,小规模增值税3%减按1%征收,那么一般纳税人该怎么办?...
  6. python语音开发库-各种 Python 库/模块/工具
  7. python numpy数据类型_Python中numpy的数据类型,python,dtype
  8. 微信小程序 data中数据值的更改与储存
  9. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...
  10. 安卓rtmp推流app_直播-腾讯云推流-sdk 播放地址不正确的解决方案---蜻蜓系统-uniapp-flutter通用...