2012-09-26 237 views
0

我有包含几行文本的文件。 我打开这样的文件在我的代码:在列表中搜索字符串

final = codecs.open("info", 'r', 'utf-8') 
lines = final.readlines() 

然后我要找到确切的行:

if 'Edytuj'.join('\n') in lines: 
#rest of code 

我知道文件包含'Edytuj'但这种说法是始终False,我会犯错某处?

回答

3

你看过什么'Edytuj'.join('\n')返回? (由于您正在加入长度为1的可迭代项,因此它会返回'\n')。我猜这不是你想要做的。

你想要做什么测试?

也许你的意思是:

if any('Edytuj' in line for line in lines): 
    pass #... 

或可能:

if 'Edytuj\n' in lines: 
+0

但没有'.join('\ n')'它也不起作用 – adaniluk

+0

也许你想'如果有的话('Edytuj'在行中行)'??? – mgilson

+0

我想检查'lines'是否包含“Edytuj”字符串 – adaniluk

0
with codecs.open("info", 'r', 'utf-8') as file: 
    for line in file: 
     if u'Edytuj\n' == line: # match full line 
      #rest of code 

你可以使用if u'Edytuj' in line是否有可能在该行的其他内容。