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

时间:2014-07-24 17:42:39

标签: python tab-delimited-text

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

A   B   aaaKP
C   D   bbbZ

这是制表符分隔的。

如果

phrase = aaa
column = 3

然后我只希望第三列以aaa

开头的那些行

输出

A   B   aaaKP

我所尝试的内容非常乏味,我只尝试过MatLab。

我只能通过使用非常慢的if和for语句以及findstr。

来尝试

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

2 个答案:

答案 0 :(得分:1)

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()

答案 1 :(得分:0)

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

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

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