在python中返回具有某些列值的行

时间:2018-01-22 07:43:14

标签: python

我正在阅读一个标题为“sample.txt”的文本文件,其中包含2列数据,如下所示。

ID类型

1 A

2 B

3 A

4 C

5 A

现在,

1)我想只返回'Type'列值为'A'和

的行

2)我想只返回'Type'列值不是'A'的行。

任何人都可以帮我理解如何在python中完成这项工作吗?感谢。

1 个答案:

答案 0 :(得分:0)

你没有非常努力地尝试,或者至少没有试图破解这一点。

def filterFileLines(filterFunction):
    with open("sample.txt") as file:
        # discard_first_line
        file.readline()

        for line in file:
            id, type = line.strip().split(' ')
            if filterFunction(id, type):
                print (line, end='')
        print('')

def isTypeA(a, b):
    return b == 'A'

def isNotTypeA(a, b):
    return not isTypeA(a, b)

if __name__ == '__main__':
    print('Lines with type == "A"')
    filterFileLines(isTypeA)

    print('lines with type not "A"')
    filterFileLines(isNotTypeA)