-1

我是 python 新手,在 python 中面临变量插值概念的问题我已经编写了一个检查参数的方法,但是在打印行时它给出了错误

   import re
   import sys
   import os.path

   def CheckArgument(argv) :
     for arg in argv :
      if (re.match('^-a$|^-b$|^-c$',argv) != 1) :
        if os.path.isfile(arg) != 1 :
            print ("file %s doesnot exists", % arg)
                            #above line is giving error
        elif re.match('-help',arg) == 1 :
             print "......."


   CheckArgument(sys.argv)
4

1 回答 1

1

首先,re.match()返回一个MatchObject实例,而不是一个整数。表达方式

re.match('^-a$|^-b$|^-c$',argv) != 1

永远是真实的。只需使用not

if not re.match('^-a$|^-b$|^-c$', argv):

和:

elif re.match('-help', arg):

您需要,从打印语句中删除;运算符%作用于左侧的字符串,但这确实意味着两者之间不应有逗号:

print ("file %s doesnot exists" % arg)

看起来好像您正在尝试解析命令行参数。您可以使用该argparse模块代替。

于 2013-04-26T20:46:11.633 回答