2013-04-26 62 views
-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) 

回答

1

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

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

总是为True。只需使用not

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

和:

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

您需要从打印语句删除,;在%操作行为上的左侧的字符串,但不意味着不应该有一个逗号之间:

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

看起来好像你正在试图解析命令行参数。你可以用argparse module来代替。