Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
7 / 5 / 2
Регистрация: 23.06.2015
Сообщений: 57

Как правильно вносить изменения в большие текстовые файлы

03.02.2022, 23:00. Показов 1454. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предположим есть большой файл (100 млн строк, не важно).
В определенные строки нужно внести изменения (грубо говоря 5 строк надо изменить).
Как это правильно сделать? Если можно пример кода.
Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2022, 23:00
Ответы с готовыми решениями:

Как правильно вносить изменения в веб-страницы?
Привет всем, господа веб-программисты!!! Прошу тапками не кидать, я разработчик игр на C++ & DirectX, а не веб-программист. И я...

Как вносить изменения в прошлые коммиты и сделать правильно push на тот же самы коммит?
Как вносить изменения в прошлые коммиты и сделать правильно push на тот же самы коммит? Что зачем делать?

Необходимо проанализировать большие текстовые файлы
Добрый день. Подскажите, как лучше реализовать задачу, по анализу всех файлов в папке и подпапках с регулярными выражениями. Насколько...

2
148 / 111 / 37
Регистрация: 28.11.2013
Сообщений: 383
04.02.2022, 21:37
Лучший ответ Сообщение было отмечено leonidkorolev как решение

Решение

Самый быстрый способ - это использовать базу данных, например, sqlite

Можно так (файл 10 МБ, 31тыс строк):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import time
start_time = time.time()
 
import shutil
with open("test.txt", "r", encoding='utf-8') as long_file, \
    open("test_replaced.tmp", "w", encoding='utf-8') as replacement:
    for line in long_file:
        replacement.write(line.replace("Было>", "Стало"))
 
shutil.move("test_replaced.tmp", "test.txt")
    # --- 0.2570645809173584 seconds ---
 
print("--- %s seconds ---" % (time.time() - start_time))
Тут ещё зависит, можете ли вы загрузить полностью файл в память или работать подольше.

Добавлено через 6 минут
Чтобы проверить наличие строки в файле (true/false) можно искать кусками
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import time
start_time = time.time()
 
def contains(filename, some_string):
    n = len(some_string)
    prev_chunk = ''
    with open(filename, encoding='utf-8') as f:
        while chunk := f.read(2 ** 20):
            if some_string in prev_chunk[-(n-1):] + chunk:
                return True
            prev_chunk = chunk
        return False
 
print(contains("test.txt", "Шары света в воздухе над"))
 
print("--- %s seconds ---" % (time.time() - start_time))
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
05.02.2022, 08:31
Цитата Сообщение от Skryp Посмотреть сообщение
31тыс строк
у меня такой текстовый файл = 4136 Кб-вроде справляется питон..........
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2022, 08:31
Помогаю со студенческими работами здесь

Чем открывать большие текстовые файлы?
Здравствуйте! Можете посоветовать, чем открывать большие текстовые файлы(лог)? Сейчас я подгружаю в richtextbox через ssh 1000/5000...

Как вносить изменения в БД?
Добрый вечер. Недавно начал осваивать С#, и вот очередь дошла до баз данных для приложений. Создал базу данных, заполнил...

Как вносить изменения в файл?
Люди, помогите. Хочу сделать так, чтобы программа вносила изменения в файл, не удаляя все то, что было в нем написано. Заранее благодарен.

Как вносить изменения с другого компьютера?
Добрый день! У меня стоит пакет XAMPP сервер apache, mysql и я работаю на локальном сервере на своем компе Но мне нужно будет уехать и я...

Как заполнять БД и вносить изменения FireDac
Решил изучить работу с БД и вот дошел до того этапа когда пора заполнять БД или изменять, как осуществить заполнение БД с edit`ов в колонки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru