我是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)
答案 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代替。