我试图在Python中创建一个小的迭代字符串匹配函数。我抓住了第一组匹配的字符串,但是第二组匹配的字符串没有被抓住。我添加了字符串转换以确保对象是字符串。我的理解是==运算符匹配值,而不是对象。 (如果我的术语错了,请纠正我)。任何帮助将不胜感激。
#!/usr/bin/python
import re
NameLG_file = open("Name2.txt", "r")
NameSM_file = open("Inc2.txt", "r")
SMList = []
LGList = []
# Assign LG to List and Format
for a in NameLG_file:
a = a.strip('\n')
a = a.replace('\"', '')
a = str(a)
LGList.extend([a])
# Assign SM to list and format
for c in NameSM_file:
c = c.strip('\n')
c = str(c)
SMList.extend([c])
# Identify and list orphans.
for e in LGList:
for f in SMList:
if e == f:
print True
print e
print f
print ""
# break
else:
print False
print e
print f
print ""
NameLG_file.close()
NameSM_file.close()
Name2.txt包含
"teardown"
"Elite"
Binary
Inc2.txt包含
teardown
Elite
输出结果为:
True
teardown
teardown
False
teardown
Elite
False
Elite
teardown
False
Elite
Elite
False
Binary
teardown
False
Binary
Elite
因此我希望匹配的Elite字符串显示为True。提前谢谢!
答案 0 :(得分:1)
对于我的观点,问题是您的文件使用Windows EOL(\ r \ n) 所以当你执行a.strip('\ n')时,返回的值是“Elite \ r”而不是“Elite”
解决方案是使用strip()而不是strip('\ n')