Задать вопрос
@pw0ned

Ускорить обработку файла?

Есть текстовый файл который нужно обработать, файл количеством строк в 8 тыс. обрабатывает 56 секунд по показателям cProfile.

Код

import re

with open('base.txt') as file:
    for line in file:
            pattern = r'^([A-z0-9]*)_([A-z0-9]*)(@.*)?:(.*)$'
            newpattern = r'\1_\2\3:\1'
            res = re.sub(pattern, newpattern, line)

            resfile = open('result.txt', 'a')
            resfile.write(res)
            resfile.close()


Есть варианты ускорения подобного? Буду благодарен.
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Простой 9 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
result = []

with open('base.txt') as file:
    for line in file:
        pattern = r'^([A-z0-9]*)_([A-z0-9]*)(@.*)?:(.*)$'
        newpattern = r'\1_\2\3:\1'
        res = re.sub(pattern, newpattern, line)
        result.append(res)

with open("result.txt", "w") as f:
    for r in result:
        f.write(r)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@immelnikoff
Изучаю БД
from re import sub

pattern = r'^([A-z0-9]*)_([A-z0-9]*)(@.*)?:(.*)$'
newpattern = r'\1_\2\3:\1'
resfile = open('result.txt', 'w')
with open('base.txt') as file:
    for line in file:
        resfile.write(sub(pattern, newpattern, line))
resfile.close()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы