Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2024, 11:39   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Параллельное чтение из одного файла разными процессами

здравствуйте, создал файл на пионе
Код:
from datetime import datetime
date_start = datetime.now()
print('Начато                      ', date_start)
with open('large_file.txt', 'w') as f:
    for i in range(1, 1_000_000_000):  # с 1 до 1 000 000 000 — один миллиард
        f.write(f'{i}\n')
    f.write('1000000000') # последняя строка будет без абзаца
print('Файл создан')
print('Окончено                    ', datetime.now())
print('Продолжительность работы    ', datetime.now() - date_start) # 0:42:19.944706=10 633 681 КБ
вручную файл не открывает ОС - нехватка памяти
открываю файл питоном, ошибка
File "<frozen codecs>", line 322, in decode
MemoryError
ошибка понятна, поэтому сабж плиз, спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 16.03.2024, 12:48   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А точно нужно загрузить весь файл в оперативную память одномоментно? Чем не подходит читать файл кусками и обрабатывать каждый кусок.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 16.03.2024, 14:04   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Чем не подходит читать файл кусками и обрабатывать каждый кусок
так не знаю как
в го читал на это уходит до 2 сек, хотел сравнить))
там правда ПК получше моего))
Ципихович Эндрю вне форума Ответить с цитированием
Старый 16.03.2024, 18:20   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Например, сумма чисел из этого файла:
Код:
a = 0
with open("large_file.txt") as infile:
    for line in infile:
        a += int(line)
print(a)
Файл с миллиардом на 10ГБ нормально открывается, например, HxD Hex Editor'ом.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 16.03.2024, 20:08   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

понял
спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование одного соединения разными приложениями Layman БД в Delphi 6 27.10.2015 12:39
Параллельный вызов одного и того же метода с разными входными данными maxspace C# (си шарп) 1 16.11.2014 23:33
StringGrid чтение из одного файла нескольких таблиц и запись Senya23 Компоненты Delphi 10 09.10.2013 22:31
Параллельное чтение файла iCaesy Общие вопросы по Java, Java SE, Kotlin 0 18.01.2013 15:45
чтение из одного exe файла, и запись в другой exe inndim Общие вопросы Delphi 2 04.02.2009 15:23