如何在 python 中的连续单词中插入制表符?
How to insert tab in a sequential word in python?
我遇到一个非常大的文本文件的问题,如下所示:
A T T A G C A
A AT A G C A
T TT AG G A
G T T A G C A
每个字符都被\t
分割了,但是有些字符是连在一起的,我想在这些序列中添加\t
。我需要的是如下:
A T T A G C A
A A T A G C A
T T T A G C A
G T T A G C A
我可以在 Python 做什么?而且我需要充分利用我的电脑内存来加快这个过程。
我可能会像这样写一份原始文件的副本。
with open('in.txt') as input, open('out.txt', 'w') as output:
prev_char = None
while True:
c = input.read(1)
if not c:
break
if prev_char and prev_char != '\t' and c != '\t':
output.write('\t')
output.write(c)
prev_char = c
假设输入存储在 in.txt
中,一个优雅的解决方案是
import re
with open('in.txt') as fin, open('out.txt', 'w') as fout:
for line in fin:
fout.write('\t'.join(re.findall('\w', line))+'\n')
输出存储在文件out.txt
中。
我遇到一个非常大的文本文件的问题,如下所示:
A T T A G C A
A AT A G C A
T TT AG G A
G T T A G C A
每个字符都被\t
分割了,但是有些字符是连在一起的,我想在这些序列中添加\t
。我需要的是如下:
A T T A G C A
A A T A G C A
T T T A G C A
G T T A G C A
我可以在 Python 做什么?而且我需要充分利用我的电脑内存来加快这个过程。
我可能会像这样写一份原始文件的副本。
with open('in.txt') as input, open('out.txt', 'w') as output:
prev_char = None
while True:
c = input.read(1)
if not c:
break
if prev_char and prev_char != '\t' and c != '\t':
output.write('\t')
output.write(c)
prev_char = c
假设输入存储在 in.txt
中,一个优雅的解决方案是
import re
with open('in.txt') as fin, open('out.txt', 'w') as fout:
for line in fin:
fout.write('\t'.join(re.findall('\w', line))+'\n')
输出存储在文件out.txt
中。