我有一个制表符分隔的txt文件,如下所示:
A B aaaKP
C D bbbZ
这是制表符分隔的。
如果
phrase = aaa
column = 3
然后我只希望第三列以aaa
开头的那些行输出
A B aaaKP
我所尝试的内容非常乏味,我只尝试过MatLab。
我只能通过使用非常慢的if和for语句以及findstr。
来尝试我无法使用MatLab找到更好的方法。
答案 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。