Замена таких вещей, как \t\r, используя Python

У меня есть текстовый файл с разделителями табуляции.

Я пытаюсь заменить

\t\t

от

\t999999999\t

Сначала я попытался использовать notepad++, чтобы сделать это. Я это сделал. Но это было слишком медленно.

Поэтому я думаю о том, будет ли это быстро, если я буду использовать Python для этого.

Я сделал некоторые поиски и нашел Regex заменить текст в Python

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

Моя попытка не сработала

import fileinput
for line in fileinput.FileInput("input.txt",inplace=1):
    line = line.replace(r'\t\t',r'\t999999999\t')
    print line,

2 ответа

Решение

В зависимости от ваших потребностей, вы можете использовать re.sub()..

>>> import re
>>> re.sub(r'(?<=\t)(?=\t)', '999999999', 'foo\tbar\t\tbaz')
'foo\tbar\t999999999\tbaz'

Или replace() способ сделать это:

>>> s = 'foo\tbar\t\tbaz'
>>> s.replace('\t\t', '\t999999999\t')
'foo\tbar\t999999999\tbaz'

редактировать

>>> import fileinput
>>> for line in fileinput.input('input.txt', inplace = 1):
...     print line.replace('\t\t', '\t999999999\t'),

За комментарий @ скрам, вы пробовали:

myText = r'\t\r'

newText = myText.replace(r'\t\r', r'\t9999\r')

который возвращается

\t9999\r
Другие вопросы по тегам