打印列表和txt文件中类似的项目

时间:2017-08-23 17:44:03

标签: python

filename = r"D:\PythonFiles\Python_File.txt"
f = open(filename)

List1 = ['E','H']

for line in f:
if line == List1:
    print(line)

执行此操作时,所有出现的内容都是txt文件的全部内容:

H
E
L
L
O

所有应该打印的是:

H
E

4 个答案:

答案 0 :(得分:2)

我认为上面的答案是你正在寻找的。但是,为了完整性,并且因为这是一个更好的方式来做你要求做的事情,我还建议使用一个集合交集:

In [20]: f = open('file.txt').read().split('\n')  # Since readlines keeps newlines
    ...: interesting = ['E', 'H']
    ...: set(interesting) & set(f)
    ...:
Out[20]: {'E', 'H'}

答案 1 :(得分:0)

使用in,因为它会告诉您某些内容

filename = r"D:\PythonFiles\Python_File.txt"
f = open(filename)
List1 = ['E','H']

for line in f:
    ## Use the 'in' operator here instead of '=='
    if line in List1:
        print(line)

    ## If List1 is going to be dynamic
    ## else:
    ##     List1.append(line)

答案 2 :(得分:0)

# Iterate File contents Line by Line
for line in f.readlines():
    # Remove leading NewLine and Test if line in List1
    if line.strip() in List1:
       # Print's line with NewLine
       print(line)

答案 3 :(得分:-1)

试一试:

filename = r"D:\PythonFiles\Python_File.txt"
f = open(filename, 'r')
List1 = ['E','H']
for line in f.readlines():
    if line in List1:
        print(line)