当第一个字符是字母只有 A、G、C、U 或 N 时,我正在寻找一种方法来查看文本文件中的下一行。我创建了一个字典。我能看到的所有可能性。我已经尝试过 itertools,但无济于事,而且我听说 itertools 会将所有内容保存在内存中,因为我的文件相当大(有时> 10GB),这将是最没有生产力的。我真的很感激帮助,我已经在这里徘徊了几天寻找答案。我正在考虑或尝试正则表达式,但我不知道该怎么做。我真的很想为大文件找到最有效的方法。这是我的(可怜的)尝试。
我已经参与了一个答案:Python for-loop look-ahead
f2 = open(path to file)
from itertools import tee
from itertools import permutations
def pairwise(iter):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iter)
next(b, None)
return zip(a, b)
p = permutations(['A','G','U','C','N'])
for per in p:
per = ''.join(per)
dic={'a':[]}
dic['a'].append(per)
for line, next_line in pairwise(f2):
if line in dic['a']:
letter= next_line.split()
unilist.append('%s' %next_line)
print (unilist)
看来问题在于:for line, next_line in pairwise(f2) 我会非常感谢每一个提示和建议。
编辑:我指的是行中的字符,而不是 next_line 中的字符。