• 技术文章 >后端开发 >Python教程

    Python argv用法详解

    2016-06-10 15:06:44原创677
    想用python处理一下文件,发现有argv这个用法,搜来学习一下。

    如果想对python脚步传参数,那么就需要命令行参数的支持了,这样可以省的每次去改脚步了。

    用法是:python xx.py xxx

    举例如下:

    #-*- coding:utf- -*-
    from sys import argv
    script,first = argv
    print "the script is called:", script
    print "the first variable is:", first 

    结果如下


    这里argv接收到的是一个列表变量

    #-*- coding:utf- -*-
    from sys import argv
    f = open(argv[], 'r')
    print f.read()
    f.close() 

    比方说这里我读取文件名,开始写成了 open(argv, 'r'),会提示类型错误,改成argv[1]就好了

    下面再来详细介绍下sys.argv[]用法

    Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,以下两个例子说明:

    1、使用sys.argv[]的一简单实例,

    import sys,os 
    os.system(sys.argv[1]) 

    这个例子os.system接收命令行参数,运行参数指令,保存为sample1.py,命令行带参数运行sample1.py notepad,将打开记事本程序。

    2、这个例子是简明python教程上的,明白它之后你就明白sys.argv[]了。

    import sys 
    def readfile(filename): #从文件中读出文件内容 
    '''''Print a file to the standard output.''' 
    f = file(filename) 
    while True: 
    line = f.readline() 
    if len(line) == 0: 
    break 
    print line, # notice comma 分别输出每行内容 
    f.close() 
    # Script starts from here 
    if len(sys.argv) < 2: 
    print 'No action specified.' 
    sys.exit() 
    if sys.argv[1].startswith('--'): 
    option = sys.argv[1][2:] 
    # fetch sys.argv[1] but without the first two characters 
    if option == 'version': #当命令行参数为-- version,显示版本号 
    print 'Version 1.2' 
    elif option == 'help': #当命令行参数为--help时,显示相关帮助内容 
    print '''''/ 
    This program prints files to the standard output. 
    Any number of files can be specified. 
    Options include: 
    --version : Prints the version number 
    --help : Display this help''' 
    else: 
    print 'Unknown option.' 
    sys.exit() 
    else: 
    for filename in sys.argv[1:]: #当参数为文件名时,传入readfile,读出其内容 
    readfile(filename) 

    保存程序为sample.py.我们验证一下:

    1) 命令行带参数运行:sample.py –version 输出结果为:version 1.2

    2) 命令行带参数运行:sample.py –help 输出结果为:This program prints files……

    3) 在与sample.py同一目录下,新建a.txt的记事本文件,内容为:test argv;命令行带参数运行:sample.py a.txt,输出结果为a.txt文件内容:test argv,这里也可以多带几个参数,程序会先后输出参数文件内容。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 总结分享Python冷门的技巧• python虚拟环境配置与管理• 聊聊Python中列表和字典前加星号(**)• 一文搞懂Python爬虫解析器BeautifulSoup4• 一文掌握Python返回函数、闭包、装饰器、偏函数
    1/1

    PHP中文网