@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()


Есть варианты ускорения подобного? Буду благодарен.
  • Вопрос задан
  • 263 просмотра
Решения вопроса 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()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы