用命令行调用python脚本的时候,如果想往脚本中传递参数的时候,参数会被python解释器接收,并转换为一系列的字符串,放在sys模块中的argv列表中。因此,可以使用argv[0]来引用第一个参数。
在命令行中调用,argv[0]中存放的是该脚本的完整路径,如下代码:
#encoding:gbkimport sysprint sys.argv[0]print sys.argv[1]
运行结果如下:
可以看到第一个参数存放的是脚本的路径,第二个参数起才是我们传递的参数
以下是一个案例,用于查找指定文件中是否包含某个字符串的脚本(使用gbk编码的原因在于,window中默认使用的是gbk编码):
#coding=gbkimport sysdef findFile():try:Str = sys.argv[1]path = sys.argv[2]except:Str = Nonepath = Noneif path == None or Str == None:print "缺少相应参数..."print "使用方法: 命令(findFile.py) + 要查找的字符串 + 文件路径..."else:try:i = 0fi = open(path)for txt in fi:i+=1if txt.find(Str) != -1:info = txt.replace('\n','') + ' 所在行:' + str(i)print infofi.close()except:print '路径不存在...'findFile()
大致的运行如下:
参考地址:/article/647f01159e55ea7f2148a8be.html