2013-04-26 4 views
-1

Я питон новичка и облицовочные проблемы с переменной концепцией интерполяции в питоне Я написал метод, чтобы проверить аргумент, но он дает ошибку при печати линииОшибка при печати переменной интерполяции в питоне

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 

будет всегда быть правдой. Просто используйте not:

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

и:

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

Вы должны удалить , из заявления для печати; оператор % действует на строке на левой стороне, но это не значит, что не должно быть запятой между:

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

Это выглядит так, как будто вы пытаетесь разобрать аргументы командной строки. Вместо этого вы можете использовать argparse module.

Смежные вопросы