Замена таких вещей, как \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