在python中打印变量插值时出错

时间:2013-04-26 20:42:00

标签: python variables interpolation

我是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)

1 个答案:

答案 0 :(得分: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语句中删除,; %运算符作用于左侧的字符串,但这意味着它们之间不应该有逗号:

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

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