Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37

Оптимизация кода для вывода большого обьема данных

19.04.2021, 09:45. Показов 2569. Ответов 10

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, я новичок в питоне и хотел знать как лучше поступить с целью оптимизации своей программы. Programm.py последовательно выводит мультистроки(из кортежа, а кортежи в словаре)обьемом под 50Mb из data.py(300Mb).
Мне сделать так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import data  # data.py с текстовыми данными.
 
print(data.text0[0])
input(])
print(data.text0[1])
input()
print(data.text0[2])
input()
print(data.text1[0])
input()
print(data.text1[1])
input()
print(data.text1[2])
или так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from data import text0
print(text0[0])
input(])
print(text0[1])
input()
print(text0[2])
input()
 
from data import text1
print(text1[0])
input()
print(text1[1])
input()
print(text1[2])
или так:
Python
1
 <другой код)>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2021, 09:45
Ответы с готовыми решениями:

Посоветуйте php класс для парсинга html кода большого обьема
Пробовал класс simple html dom parser но он не справляется с таким обьемом (минимум 1мб данных) :) Хотя класс очень удобный, есть что то...

Вывод большого обьёма данных
for a:=1 to 17 do for b:=1 to 17 do for c:=1 to 17 do for d:=1 to 17 do for e:=1 to 17 do ...

Загрузка большого обьема данных и Connect к MSSQL2000
При загрузке большого обьема из paradox таблиц (ок 15GB) в MSSQL2000 (загружает моя программка через ADO с обработкой) MSSQL приняв...

10
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
19.04.2021, 09:53
pyatpy, не особо понял в чем проблема, но дам небольшую подсказку:

Если в твоем коде встречаются такие названия как text0, text1, text2 ..., то тут явно надо использовать списки(кортежи), чтобы избавиться от тонны кода в будущем.
1
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
19.04.2021, 14:38  [ТС]
Всмысле, вот так?:
Python
1
2
3
text0=("Кокойто текст 0","Кокойто текст 1","Кокойто текст 2",)
text1=("Какойто текст",...)
...
Буду знать. Но я имел ввиду способы импорта. Мне сразу импортировать всю базу data.py - import data, или мне ипортировать только части(переменные text0 и тд.) когда потребуется их вывод? Тоесть -
НЕ ТАК:
Python
1
2
3
4
import data
print(data.text0)
print(data.text1)
...
A ТАК
Python
1
2
3
4
5
# import data - не надо
from data import text0
print(text0)
from data import text1
print(text1)
0
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
19.04.2021, 21:29  [ТС]
DmFat,
Всмысле, вот так?:
Python
1
2
3
text0=("Кокойто текст 0","Кокойто текст 1","Кокойто текст 2",)
text1=("Какойто текст",...)
...
Буду знать. Но я имел ввиду способы импорта. Мне сразу импортировать всю базу data.py - import data, или мне ипортировать только части(переменные text0 и тд.) когда потребуется их вывод? Тоесть -
НЕ ТАК:
Python
1
2
3
4
import data
print(data.text0)
print(data.text1)
...
A ТАК
Python
1
2
3
4
5
# import data - не надо
from data import text0
print(text0)
from data import text1
print(text1)
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
20.04.2021, 10:03
Я тоже не понял. И вперёд - читать про списки в питоне. Кортежи тут ни к чему.
Опишите задачу. Непонятно даже, что импортируете.
Цитата Сообщение от pyatpy Посмотреть сообщение
# data.py с текстовыми данными.
Правда? У вас данные в .py-файле? В таком случае, просто не надо так делать. В .py-файлах должен быть только код.
Данные - если простые, то в текстовых файлах. Если посложнее - json или что-то подобное, возможны варианты.
Если данных много, а ворочать ими надо быстро - то СУБД.
2
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
20.04.2021, 11:28  [ТС]
dondublon,
Ok, скажу проще. Я пишу текстовый квест, он состоит из main.py(тут код) и data.py(тут текст). В data.py есть масивы, а в масиве очень много ключей с строками текста, а как я ранее говорил текста очень много. Пока вся работа идет в main.py, в него надо сделать ипорт текста из data.py. Мне импортировать весь data.py файо, а потом выводить нужный текст?:
в main.py:
Python
1
2
3
import data
print(data.dict1[key1])
print(data.dict2[key2])
Или же, при необходимости вывода текста импортировать нужный масив:
в main.py:
Python
1
2
3
4
from data import dict1
print(dict1[key1])
from data import dict2
print(dict2[key1])
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
20.04.2021, 12:03
Цитата Сообщение от pyatpy Посмотреть сообщение
В data.py есть масивы,
Ну, я вам ответил об этом, а дальше уж дело ваше. Подход у вас совершенно неверный.

Добавлено через 1 минуту
И не только потому, что вы содержите данные в .py, но и потому, что вы импортируете данные (вообще, некие) через import.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
20.04.2021, 16:28
Цитата Сообщение от pyatpy Посмотреть сообщение
Мне сразу импортировать всю базу data.py - import data, или мне ипортировать только части(переменные text0 и тд.) когда потребуется их вывод?
Дело в том, что и при импорте с синтаксисом
import data ,
и при синтаксисе
from data import dict1 ,
питон загружает и обрабатывает модуль целиком.
Разница только в том, как он формирует пространства имен.
При import data создается самостоятельное пространство имен, в котором к переменным нужно обращаться с помощью квалифицированных имен data.dict1, что исключает конфликта имен, если в вызывающей программе у вас окажется переменная с таким же именем.
При синтаксисе from data import dict1 указанные переменные из модуля добавляются в пространство имен вызывающей программы, поэтому к ним можно обращаться по простому имени dict1 . Но если в вызывающей программе окажется переменная с таким же именем, то произойдет конфликт имен.
Если Вы уверены, что у Вас одинаковых имен нет, то Вы можете использовать для импорта любой из этих синтаксисов.
На производительность это никак не повлияет, но только при условии, что Вы выполняете импорт только один раз.
Вариант, когда Вы делаете импорт несколько раз , это не правильное решение. Так как при повторном импорте
from data import dict2 питон ничего импортировать не будет, а просто использует уже загруженный модуль, что бы взять из него переменную dict2 , и поместить ее в пространство имен вызывающей программы.
Поэтому что бы не засорять код, импорт делают только один раз, и если используют синтаксис с from то сразу указывают все переменные, которые вы хотите добавить в пространство имен вызывающей программы.
Python
1
from data import dict1, dict2
Добавлено через 8 минут
pyatpy, Если же Вы хотите осуществлять работу с данными частями, то нужно хранить эти части в отдельных файлах и загружать и выгружать их поочередно, или хранить в одном файле, но загружать его частями.
Если Вы храните данные в базе данных (БД), то из нее тоже можно брать данные частями.
Если же у Вас все хранится в одном модуле, то Вы может работать с ним только целиком (в смысле загружать целиком).
1
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
20.04.2021, 20:50  [ТС]
dondublon,
Я пон. В обеих случаях импорт весь модуль, from добавляет переменную, но также импорт весь модуль и дает работу только над теми переменными, которые мы указали. И что там с БД, я с ними не работал, моя проблемма описана выше, но не зная всех тонкостей, я не правильно ее описал, мне просто надо подгружать и выгружать нужные мне участки текста и если вы поможете - буду признателен. Я просто новичок, а как иморт без import я не знаю и причем здесь js я тоже не знаю. Я искал инфу, но не нашел. Если можете помогите пж. если такое надо обсуждать в др. теме то киньте плз ссылку на нее.

Добавлено через 2 минуты
Viktorrus,
Я пон. В обеих случаях импорт весь модуль, from добавляет переменную, но также импорт весь модуль и дает работу только над теми переменными, которые мы указали. И что там с БД, я с ними не работал, моя проблемма описана выше, но не зная всех тонкостей, я не правильно ее описал, мне просто надо подгружать и выгружать нужные мне участки текста и если вы поможете - буду признателен. Я просто новичок, а как иморт без import я не знаю и причем здесь js я тоже не знаю. Я искал инфу, но не нашел. Если можете помогите пж. если такое надо обсуждать в др. теме то киньте плз ссылку на нее.
pyatpy на форуме Обратить внимание администрации на это сообщение 0
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
20.04.2021, 20:56
Цитата Сообщение от pyatpy Посмотреть сообщение
Я пишу текстовый квест
Кури: https://www.renpy.org/.
1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
21.04.2021, 10:00
Лучший ответ Сообщение было отмечено pyatpy как решение

Решение

Цитата Сообщение от pyatpy Посмотреть сообщение
Я просто новичок, а как иморт без import я не знаю
Вот с этого и надо начинать. Отсюда раскрутится весьма интересный для вас клубок.

Да, вы новичок, не понимаете вашей проблемы, берётесь её решать неправильно и просите помочь вам в этом неправильном решении. Я этого делать не буду, в отличие от Victorrus.

Что вам сейчас нужно - так это научиться работать с функциями и классами. Иными словами - ООП. И усвоить, что импортируется через import ТОЛЬКО код, а не данные и не состояние. (Строго говоря, импортировать состояние можно, в редких случаях, и это не ваш.)
В качестве критерия понимания - в вашей программе должно остаться не более одной глобалки.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2021, 10:00
Помогаю со студенческими работами здесь

Как выбрать хранение большого обьема данных
Приобрели сервер supermicro на 8 быстросъемных HDD под видео наблюдение. Использовать какие то программы запрещено по ТЗ. Вообще надо...

Оптимизация кода для вывода категорий.
Здравствуйте. У меня есть таблица с категориями примерно с такой структурой. category ------------------- id parent name 1 0 ...

Оптимизация вывода большого (более 7000) количества записей на странице
Здравствуйте. Прошу совета, как сделать более оптимальным решение. Имеется справочник КБК. Модель: public partial class...

Реализовать функцию для вывода большого массива данных постранично
Люди добрые! На практике по PHP задали написать простую программу, но что-то я никак не могу понять, как это реализовать. Буду очень...

Вывод большого обьема текста(от 1гб)
Всем привет. Хочу узнать как вывести большой обьем данных на форму (какие компоненты использовать) на данные момент вывожу примерно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru