前言

每个脚本或者命令行程序都可以输入一些参数,通常有两种规范。

短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开,长度任意,可以用引号。

python main.py -o

python main.py -oa

python main.py -oabcd

python main.py -o abcde

python main.py -o "abcdef"

长格式,"--"号后面要跟一个单词,如果还有些选项的附加参数,后面要紧跟"=",再加上参数,"="号前后不能有空格。

python main.py --conf=conf.json

使用 sys.argv 获取参数

在 Python 可以使用 sys.argv 获取到命令行参数。

第一个参数 sys.argv[0] 表示代码本身文件路径。

所有参数从1开始,返回的结果是一个 list。

#-*- coding: uft-8 -*-

import os,sys

if __name__ == "__main__":

arg1 = sys.argv[1]

arg2 = sys.argv[2]

print(sys.argv)

# ['.\\\\main.py', 'a', 'b', 'd', 'e']

使用 getopt 获取参数

在使用 getopt的时候有如下内容需要注意。

使用切片过滤掉 sys.argv[0] 为脚本名的参数,sys.argv[1:]为要处理的参数列表。

通常会有限验证参数是否合法,这里使用try进行判断。

这里 getopt.getopt() 函数需要两个参数,一个是命令行参数列表,一个是匹配选项。

其中匹配选项 "hi: o:" 表示程序可以匹配三个参数(注意:这串字符中间多了一个空格,因为Markdown语法会替换成Emoji表情,需去掉):

h选项表示开关不带参数如: test.py -h

i:选项表示-i参数后面必须存在参数值如: test.py -i abc.txt

o:选项表示-o参数后面必须存在参数值如: test.py -o def.txt

这里 getopt.getopt() 函数返回两个列表,opts和args,其中opts是一个 tuple 列表,内容是(参数名,参数值),如果没有参数则为空字符串'',例如-h。args的值是格式以外的命令行参数。

Example:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys

import getopt

if __name__ == "__main__":

try:

opts, args = getopt.getopt(sys.argv[1:], "hi:o:", ["help", "input="])

except getopt.GetoptError as e:

print(e)

print("Something wrong...")

sys.exit(2)

print(opts)

print(args)

# 测试输出结果如下

python .\test.py -i abc.txt -o target.txt --help --input=input.txt otherInfo1 otherInof2

[('-i', 'abc.txt'), ('-o', 'target.txt'), ('--help', ''), ('--input', 'input.txt')]

['otherInfo1', 'otherInof2']

其他

2020-12-03 10:20:18 星期四 创建

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

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

    Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...

  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. 通信错误:(-1)[描述:无法解析路由器DDNS地址,请检查DDNS状态.] 解析办法
  2. OpenStack(Kilo版本)镜像服务glance的安装部署
  3. python format格式化函数用法
  4. 蓝牙配对模式 java_BLE(低功耗蓝牙)配对和绑定
  5. 毕业与计算机专业,电子与计算机工程专业毕业后干什么
  6. 带C#示例的String.Equality(==)运算符
  7. FreeAnchor:令anchor自由匹配标签的策略
  8. burp 代理的时候无法访问https网站
  9. linux网卡pci信息,在进行CGKlinux系统网络配置时,使用()命令可以查询出网卡的PCI编号与设备名的对应关系。...
  10. BZOJ 3166 set+可持久化trie树(OR 莫队)
  11. 服务器系统日期,系统日期和服务器日期不一致
  12. linux tomcat catalina.out 乱码,Tomcat输出日志乱码解决
  13. 数字图像处理 matlab 报告总结,matlab 数字图像处理实验报告(五份)
  14. 为什么倡导企业使用电子招投标?
  15. 思科产品手册_品牌和CIS在中国的历史(六):附下载世界帆船协会品牌管理手册...
  16. 科技公司官网小程序-总体介绍
  17. echarts结合百度地图实现迁徙图效果
  18. 大数据相关面试题整理-带答案
  19. Problem F - Football Free Kick(数组1e9的插入和删除)
  20. matlab 与 mathmatica 编程对比(Vyi个人学习笔记)

热门文章

  1. 来电中断在app中断测试的解决方案
  2. 03.10:Github,Trending,Python
  3. JSP指令标识【三大指令】
  4. Java代码生成手写笔记
  5. Jquery-ui的Resizable属性详解
  6. DBA日记 上海的RAC宕机(转自网络)
  7. pythonic_pythonic方式
  8. Windows漏洞十年未修复,3CX供应链攻击影响全球60多万家企业
  9. 【组合数学】 Holding Bin-Laden Captive 详解
  10. Mabot机器人趣味视频教程-变速风扇