2016-11-14 2 views
-2

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

+1

Не уверен, что вы подразумеваете под «полностью использовать мою память». Может быть, память компьютера? Разделить два символа больше не требуется, чтобы несколько килобайт памяти ... –

+0

Да, я хочу ускорить эту процессию. –

ответ

0

В предположении, что входной сигнал сохраняется в in.txt, элегантное решение будет

import re 

with open('in.txt') as fin, open('out.txt') as fout: 
    for line in fin: 
     out.write('\t'.join(re.findall('\w', line))+'\n') 

Выход хранится в файле out.txt.

0

Возможно, я, вероятно, напишу копию исходного файла.

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 
+0

Большое спасибо, но этот код может вызвать проблему, когда первая строка в порядке, но следующие строки были добавлены \ t в первой строке этой строки. –

Смежные вопросы