在列表中搜索字符串

时间:2012-09-26 20:13:58

标签: python file-io

我的文件包含几行文字。 我在代码中以这种方式打开文件:

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

然后我想找到确切的行:

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

我知道该文件包含'Edytuj'但该语句始终为False,我在某处犯了错误吗?

2 个答案:

答案 0 :(得分:3)

您是否看过'Edytuj'.join('\n')返回的内容? (它返回'\n',因为你正在加入一个长度为1的迭代。我猜这不是你的意思。

您希望该测试究竟做什么?

也许你的意思是:

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

或可能:

if 'Edytuj\n' in lines:

答案 1 :(得分: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