在文件python中搜索带通配符的字符串

时间:2016-02-09 09:50:26

标签: python string wildcard

基本上我要做的是检查文件(File1)与另一个(template.file)比较时缺少的字符串。一旦我有了这个,我将附加缺少字符串的File1。

File1内容:

  

dn_name:

     

ip_addr:10.0.0.0

template.file内容:

  

dn_name:

     

ip_addr:

我的方法:

f = open("template.file", "r")
t = open("File1").read()

for line in f:
        if line in t:
                print "found" + 'line'
        else:
                print "Not found"

问题在于,在我的示例中,脚本将仅为dn_name打印:但不是ip_addr:因为它也具有IP。 我基本上需要像

这样的东西
if line* in t:

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你忘记了新的行字符,特别是你在模板文件中搜索ip_addr:\n不在那里(正如程序正确告诉你的那样)。因此,为了达到你想要的效果,你必须使用rstrip()来取消换行符,就像我在下面所做的那样:

f = open("template.file", "r")
t = open("File1").read()

for line in f:
    if line.rstrip() in t:
        print "found " + line
    else:
        print line + " Not found"

此外,python中没有*in运算符已经完全符合您的要求。

最后,如果您想进行大量比较,我会建议使用set