Как вставить вкладку в последовательное слово в 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? и мне нужно полностью использовать память моего компьютера, чтобы ускорить процесс.
2 ответа
Решение
Предполагая, что вход хранится в 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
,
Я бы, вероятно, написал копию оригинального файла, как это.
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