python编写请求参数带文件_转载:如何编写一个带命令行参数的Python文件

看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来、牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命令行参数。

首先你要知道python中的sys模块的一些功能:

import sys

print "the number of python program's argument:",len(sys.argv)

print "the value of every argument is ",str(sys.argv)

python sysargv.py argv1 argv2 argv3 argv4

the number of python program's argument: 5

the value of every argument is ['sysargv.py', 'argv1', 'argv2', 'argv3', 'argv4']

其次,python程序使用命令行参数,必不可少的模块,就是getopt 模块,先看看一段代码

import getopt

args = '-a -b -cfoo -d bar a1 a2'.split()

args

['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']

optlist, args = getopt.getopt(args, 'abc:d:')

optlist

[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]

args

['a1', 'a2']

使用long_options

s = '--condition=foo --testing --output-file abc.def -x a1 a2'

args = s.split()

args

['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']

optlist, args = getopt.getopt(args, 'x', ['condition=', 'output-file=', 'testing'])

optlist

[('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x', '')]

args

['a1', 'a2']

最后实战一个例子吧!

import getopt,sys

def main():

try:

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

except getopt.GetoptError as error:

print str(error)

usage()

sys.exit(2)

infile=None

output=None

verbose=False

for key,value in opts:

if key=="-v":

verbose=True

elif key in ("-h","--help"):

print "sysargv.py -i -o "

print "or sysargv.py --infile --outfile "

elif key in ("-i","--infile"):

infile = value

elif key in ("-o","--outfile"):

output= value

print "inputfile:", infile

print "outputfile:", output

print verbose

if __name__=="__main__":

main()

测试结果:

C:\Python27>python sysargv.py --help

sysargv.py -i -o

or sysargv.py --infile --outfile

inputfile: None

outputfile: None

False

C:\Python27>python sysargv.py -h

sysargv.py -i -o

or sysargv.py --infile --outfile

inputfile: None

outputfile: None

False

C:\Python27>python sysargv.py -i "inputfile1" -o "ouputfile2"

inputfile: inputfile1

outputfile: ouputfile2

False

C:\Python27>python sysargv.py -i "inputfile1"

inputfile: inputfile1

outputfile: None

False

C:\Python27>python sysargv.py -o "outputfile1"

inputfile: None

outputfile: outputfile1

False

C:\Python27>python sysargv.py -o "outputfile1" -v

inputfile: None

outputfile: outputfile1

True

C:\Python27>python sysargv.py --infile "inputfile" --outfile "outputfile1" -v

inputfile: inputfile

outputfile: outputfile1

True

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6款程序员不得不爱的bootstrap模板

Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大 部分jQuery插件。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂…

C# 使用XML序列化对象(一)

在System.Xml.Serialization命名空间中提供了XML序列化类XmlSerializer用于将对象序列化为XML。 下面看一个最简单的例子&#xff1a; public class A{public int a{get;set;}}public string XmlSerialize<T>(T obj){XmlSerializer xs new XmlSerializer(typeof(T));usi…

数据结构之深度优先搜索(用栈实现)问题

深度优先搜索 可以这样理解,向四边延伸搜索,然后遇到不能搜索的时候就回退,也就是回溯思想,然后再去其它可能地方搜索。 题目: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,…

20161114记录一件工作的事

记录 今天&#xff0c;心痛了一次。 做了半年多的项目&#xff0c;被砍了。我去&#xff0c;心血又一次白白付出了。听到这样的消息&#xff0c;心情总会不好。 所以&#xff0c;我今天心情不好&#xff0c;不要理我哦&#xff0c;千万不要理我&#xff0c;我会发飙的 转载于:h…

Natasha 4.0 探索之路系列(四) 模板 API

相关文章Natasha 4.0 探索之路系列(一) 概况Natasha 4.0 探索之路系列(二) 「域」与插件Natasha 模板Natasha 在编译单元的基础上进行了封装整理, 并提供了多种模板帮助开发者构建功能.使用此篇的 API 前提是您对 C# 非常熟悉, 对系统的一些类型足够了解.据此 Natasha 将拒绝与…

青年博士离职高校被索赔10.5万违约金,后博士上诉至法院,判决来了!

全世界只有3.14 % 的人关注了爆炸吧知识本文转自募格学术我们都知道&#xff0c;现在入职高校往往都要签订一定的服务年限合同&#xff0c;如果合同期未满想要离职的话&#xff0c;需要给高校支付巨额违约金。但根据《劳动法》&#xff0c;有些巨额违约金从法律层面来说是站不住…

python os.walk模块_Python之os.walk和os.path.walk

一、os.walk()函数声明&#xff1a;os.walk(top,topdownTrue,οnerrοrNone)(1)参数top表示需要遍历的顶级目录的路径。(2)参数topdown的默认值是“True”表示首先返回顶级目录下的文件&#xff0c;然后再遍历子目录中的文件。当topdown的值为"False"时&#xff0c;表…

Windows Service下的Timer计时器的使用

在C#中提供了三种类型的计时器&#xff1a;1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)2、基于服务器的计时器(System.Timers.Timer)3、线程计时器(System.Threading.Timer) 一、基于 Windows 的标准计时器(System.Windows.Forms.Timer) 首先注意一点就是&#…

linux c 之使用-O来优化gcc

比如一般文件编译 gcc bfs.c -o bfs然后查看花了多少时间 time ./bfs 然后看结果 使用-O 优化&#xff0c;输入下面命令 gcc -O bfs.c -o bfs 再看所需时间&#xff0c;输入下面命令 time ./bfs 结果如图 我们还可以进一步优化用 -O1 -O2 -O3&#xff0c;列如 gcc -O2 bfs.c -…

Hbase Java API详解

2019独角兽企业重金招聘Python工程师标准>>> HBase是Hadoop的数据库&#xff0c;能够对大数据提供随机、实时读写访问。他是开源的&#xff0c;分布式的&#xff0c;多版本的&#xff0c;面向列的&#xff0c;存储模型。 在讲解的时候我首先给大家讲解一下HBase的整…

对C#未来的一点感悟

01—C#有前途吗&#xff1f;在国内C#比较冷门&#xff08;相对Python、Java&#xff09;&#xff0c;很多初学者可能都会对C#的未来有忧虑&#xff0c;害怕没有前途&#xff0c;担心找不到好的工作。其实&#xff0c;大可必须这样&#xff0c;就我在上海而言&#xff0c;我之前…

python 框架 优化_python+unittest框架第六天unittest之优化测试报告

今天的内容主要是&#xff0c;用第三方的HTMLRUNner 第三方的报告来优化之前第五天批量执行案例的测试报告。案例的部分看第五天的批量执行笔记~HTMLRUNner他可以生成更美观的测试报告&#xff0c;基于前辈造的车子&#xff0c;我们直接改造使用。先看下运行代码部分&#xff1…

linux c的连接库和怎么同时编译多个源程序

1、理解库函数 库函数有头文件和库文件(so 或者 a)的集合 1)头文件的默认目录 /usr/include 2)库文件的默认目录 /user/lib 3)linux的库文件分为动态连接库(.so)和静态连接库(.a) 他们之间的差距在于程序执行时所需代码是运行时加载的,海山编译是静态加载的,默认情况下…

2023年12月青少年机器人技术等级考试(四级) 实操试卷

主题&#xff1a;TT马达转速感应装置 器件&#xff1a;Atmega328P主控板1块&#xff0c;TT马达1个&#xff0c;直流电机驱动芯片或模块1个&#xff0c;超声波传感器1个&#xff0c;LED灯2个&#xff08;分别为LED_A和LED_B&#xff09;及相应辅件。以上模块也可使用分立器件结合…

在C#中的各种应用

1.怎么解决在C中的#define的预编译 比如在C#想将DataType全都替换成Int using DataTypeSystem.Int32;将上面一句放在开头就行了 2.在字符串中声明一个字符串数组 int count5; string[] stringArraynew string[count];这样就行了转载于:https://www.cnblogs.com/chenbuer/p…

微软第二财季营收达 517 亿美元,净利润同比增长 21%

微软今日发布了 2022 财年第二财季财报&#xff0c;营收为 517.28 亿美元&#xff0c;与去年同期的 430.76 亿美元相比增长 20%。净利润为 187.65 亿美元&#xff0c;与去年同期的 154.63 亿美元相比增长 21%。生产力和业务流程部门的营收为 159.36 亿美元&#xff0c;与去年同…

python开源考试_Github 上 10 个值得学习的 Springboot 开源项目

spring Boot 几乎继承了所有 Spring 框架的优点&#xff0c;同时还可以让项目的配置更简化、编码更简化、部署更方便。近两年受到很多开发者的追捧&#xff0c;也是火热的不行&#xff01;下面给大家整理了 10 个 Github 上最值得学习的 Springboot 开源项目&#xff0c;帮助大…