Python查找第n列以aaa开头的行

Python查找第n列以aaa开头的行,python,tab-delimited-text,Python,Tab Delimited Text,我有一个以制表符分隔的txt文件,如下所示: A B aaaKP C D bbbZ 这是以制表符分隔的 如果 然后我只想要那些第3列以aaa开头的行 输出将是 A B aaaKP 我试过的东西很乏味,我只试过MatLab 我只能通过使用非常慢的if和for语句和findstr来尝试 使用MatLab我找不到更好的方法。我能想到的最简单的方法是: with open('tab-delimited.txt', 'r') as f: for l in f:

我有一个以制表符分隔的txt文件,如下所示:

A   B   aaaKP
C   D   bbbZ
这是以制表符分隔的

如果

然后我只想要那些第3列以aaa开头的行

输出将是

A   B   aaaKP
我试过的东西很乏味,我只试过MatLab

我只能通过使用非常慢的if和for语句和findstr来尝试


使用MatLab我找不到更好的方法。

我能想到的最简单的方法是:

with open('tab-delimited.txt', 'r') as f:
    for l in f:
       if l.split('\t')[2][:3] == 'aaa':
            print(l)

如果您需要了解python切片的帮助,请参阅。

这很好。与Matlab相比,我更喜欢python。让我们看看您在python中的尝试如何?谢谢!它正确地打印输出。我可以将输出保存为output.txt吗?谢谢,它可以工作!如果有多个短语呢?例如,如果我想获取第三列为aaa、bbb或ccc的行,该怎么办?我尝试了“短语,列={'aaa','bbb','ccc'},3”,但没有成功。
with open('tab-delimited.txt', 'r') as f:
    for l in f:
       if l.split('\t')[2][:3] == 'aaa':
            print(l)
phrase, column = 'aaa', 3
fn = lambda l : len(l) >= column and len(l[column-1]) >= len(phrase) and phrase == l[column-1][:len(phrase)]
fp = open('output.txt', 'w')
fp.write(''.join(row for row in open('input.txt') if fn(row.split('\t'))))
fp.close()