Как вставить вкладку в последовательное слово в 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
Другие вопросы по тегам