zoukankan      html  css  js  c++  java
  • python sys.argv usage

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

    1. import sys  
    2. def readfile(filename):  #从文件中读出文件内容  
    3.     '''''Print a file to the standard output.'''  
    4.     f = file(filename)  
    5.     while True:  
    6.         line = f.readline()  
    7.         if len(line) == 0:  
    8.             break  
    9.         print line, # notice comma  分别输出每行内容  
    10.     f.close()  
    11. # Script starts from here  
    12. if len(sys.argv) < 2:  
    13.     print 'No action specified.'  
    14.     sys.exit()  
    15. if sys.argv[1].startswith('--'):  
    16.     option = sys.argv[1][2:]  
    17.     # fetch sys.argv[1] but without the first two characters  
    18.     if option == 'version':  #当命令行参数为-- version,显示版本号  
    19.         print 'Version 1.2'  
    20.     elif option == 'help':  #当命令行参数为--help时,显示相关帮助内容  
    21.         print '''''\ 
    22. This program prints files to the standard output. 
    23. Any number of files can be specified. 
    24. Options include: 
    25.   --version : Prints the version number 
    26.   --help    : Display this help'''  
    27.     else:  
    28.         print 'Unknown option.'  
    29.     sys.exit()  
    30. else:  
    31.     for filename in sys.argv[1:]: #当参数为文件名时,传入readfile,读出其内容  
    32.         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,这里也可以多带几个参数,程序会先后输出参数文件内容。

    2、

    import os, string
    if len(sys.argv) == 1: # 如果没有指定目录
          filenames = os.listdir(os.curdir) # 就用当前目录
    else: # 否则用命令行指定的目录
          filenames = sys.argv[1:]
    for filename in filenames:
          if '' in filename:
                newfilename = string.replace(filename, '', '_')
                print "Renaming", filename, "to", newfilename, "..."
                os.rename(filename, newfilename)

    python despacify.py *.txt

    将目录下的所有文件名里有 ' ' 用'_'替换。
    你会发现在Unix 系统上它对所有以.txt 结尾的文件都作了替换处理,而在DOS
    下它无法工作,因为DOS 和Windows 的shell(命令解释器)并不把*.txt 转换为
    一个文件名列表,而是希望由应用程序来完成转换,*的意思是匹配任意的字符。

  • 相关阅读:
    poj3669 广搜
    检索所有课程都选修的的学生的学号与姓名
    UVA10160 Servicing Stations
    uva11205 The broken pedometer 子集生成
    poj1101 the game 广搜
    poj3009 Curling 2.0 深搜
    poj 1564 Sum It Up 搜索
    HDU 2268 How To Use The Car (数学题)
    codeforces 467C George and Job(简单dp,看了题解抄一遍)
    HDU 2267 How Many People Can Survive(广搜,简单)
  • 原文地址:https://www.cnblogs.com/lovemo1314/p/2029586.html
Copyright © 2011-2022 走看看