sys.argv 详解

如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]

 

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

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

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

这个例子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       f.close()    #Script starts from here  if len(sys.argv) < 2:      print ' NO action specified.'      sys.exit()    if sys.argv[1].startwith('--'):      option = sys.argv[1][2:]      if option == 'version':          print ' version 1.2 '      elif option == '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 'Unknow option.'  else:      for filename in sys.argv[1:]:          readfile(filename)  

保存为sample2.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,

这里也可以多带几个参数,程序会先后输出参数文件内容。

 

python3

 

#!/usr/bin/python3.1
#Filename: quan-test.py

 

import sys

 

def readfile(filename):
    ''' Print a file to the standard output. '''
    f = open(filename)
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        print(line,end="")
    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:]
    if option == "version":
        print("version 1.0")
    elif option == "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 the hlep'''
             )
    else:
        print("Unknown option.")
else:
    for filename in sys.argv[1:]:
        readfile(filename)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值