Вкатываюсь в питон. Хелп!Короче, пишу одну программу, которая мне необходима по работе (Сам я не кодер, и програмирование не входит в мои прямые обязанности, но то, что я напишу - значительно упростит мне жизнь). И для этой программы мне нужно подгружать и генерировать массивы данных. То есть по сути, писать собственный формат файла.Формат файла я представляю примерно в таком виде:#Индекс элемента#Свойства элемента#Индекс связанных с ним элементов#Индекс частично связанных с ним элементовИ таких элементов должно быть дохуя. В районе нескольких тысяч. Я вообще не кодер, и не представляю как такое можно сделать. Допустим в строке "Свойства элемента" я хочу оставить себе возможность задавать разные свойства. у первого элемента этих свойств будет десять, у второго всего одно.Я пишу file = open('Путь к файлу')Затем line = file.read() И как мне дальше обрабатывать эту строку? Как программа должна узнавать количество свойств в этой строке? В стандартной комплектации python я не нашёл метода, который бы позволял сказать программе "Ищи в этой строке такое слово. Если найдёшь, то вставляй то, что находится через один символ после него в переменную"Собственно какую библиотеку можно для этого использовать?Так же я однажды сталкивался с тем, что при открытии очень больших файлов python работает криво. То ли файл не открывается, то ли file.read отказывается читать строки, то ли ещё какая хуйня происходит. Тогда я эту проблему решил каким-то костылём. Но может есть либы, которые организовывают чтение из файла корректно и без косяков? Или косяков нет, и это я криворукий уебан?Короче, хелп. Ткните носом в то, что загуглить, или какую статью прочитать
>>227076499 (OP)>писать собственный формат файлаВсе уже придумано до нас>#Индекс элемента>#Свойства элемента>#Индекс связанных с ним элементов>#Индекс частично связанных с ним элементов>>И таких элементов должно быть дохуя. В районе нескольких тысяч. Про БД слышал что-нибудь?
>>227081714Да ничего, просто если ОПу тред не нужен, то его наверное могу реквизировать я, правильно?
Аноны, а как в это говно вообще вкатываться? Буквально вчера захотел потыкаться в питона, высрал стандартноеprint('Пошел нахуй')По гайду запилил какой-то корявый аналог очка в смысле 21А че дальше то? Где-то есть список всех команд, например, или че там я хз? В жизни этой хуетой не замниался, максимум - простенького бота для ла2 на uopilot`е делал
>>227082398Алсо, как вообще начать именно что-то кодить? Мб есть где-нибудь сайтик с решением задачек простеньких помню натыкался на такой для js, но мне лень было этим заниматься
>>227076499 (OP)Лучше хранить обьекты в каком-то определенном уже существующем формате, например csv, xml, yaml, json.Рекомендую JSON (https://ru.wikipedia.org/wiki/JSON)Пример> #Индекс элемента> #Свойства элемента> #Индекс связанных с ним элементов> #Индекс частично связанных с ним элементов{ 'index' : 0, 'properties' : ['1', '2', '3'], 'related_elements' : 10, 'partially_related_elements' : [11, 12]}Далеее с помощью стандартной библиотеки (https://docs.python.org/3/library/json.html) данные легко сохраняются в файл и также легко достаются и сериализируются.В дальнейшем рекомендую подключить MongoDB и хранить все в базе, а не файлах
>>227082398Программирование не цель, а средство. У тебя есть задача, ты её решаешь. Знание языка в вакууме не даст нихуя, поэтому анон ниже прав. Ищешь задачу, формируешь решение, ищешь, как его имплементировать.
>>227076499 (OP)Создаёшь свой класс, элементы этого класса имеют те поля, которые ты перечислил, элементы класса записываешь в файл
>>227082511Смотря ради чего тебе это надо.Если просто кодить ради задачек, то смотри на сайты с автоматической проверкой типо такого https://acm.timus.ru/problem.aspx?space=1&num=1000.Если же нужно ради себя, то придумай задачу(написать бота, программу которая берет данные из инета и сортирует и т.д) и начинай пытаться её решить. Это будет развивать специальные навыки под эту область.
>>227082652>команды для чего?Для всего. Хотя бы синтаксис нужно ж откуда-то узнать, ну ебана>Задачу себе поставь, а потом уже гугли решения или велосипедь сам.Да как её поставить, если я в душе не ебу, как это даже примерно реализовать? >>227082965Дядь, ну я вот хочу стихи написать на китайском, но я из киатйского знаю только "здрасте" и "жопа", мне из этого пытаться стихи написать или все-таки где-то есть словарик простенький для начала?>>227083108>Смотря ради чего тебе это надо.Да просто для общего развития. Я сам личинка сисьадмина, мало ли - пригодится
>>227083437Пройди курс какой нибудь бесплатный типо sololearn. Получишь нормальную такую базу, а потом иди к задачам которые выше кидал.
>>227083630Во, уже что-то годное, спасибо аноня не дебил если что, на сайте с питоном есть ссылки на литературу, но я нихуя не могу запомнить без практики, а как это говно по отдельности применять еще нихуя не понимаю
>>227083437> все-таки где-то есть словарик простенький для начала?Простенький словарик это и есть базовый синтаксис. Его можно найти где угодно. Но я внезапно вспомнил очень годный базовый гайд, так что тебе повезло. Пиши на ютубе automate boring stuff with python. Этого тебе хватит для базового понимания языка, программирования в целом и даже покажет, как и куда его можно сразу же применить. Полный курс можно где-то найти в интеренетах, сам найдёшь.
>>227083718Ну вот на сайте с курсами после каждого объяснения идёт какая нибудь фигня типо "заполни пропуски" или "выбери правильный ответ", так что помимо запоминания идёт и мышечная память.
>>227076499 (OP)Питонист в треде. Можешь задавать вопросы. Я пока отвечу на то, что у тебя написано:>Ищи в этой строке такое слово. Если найдёшь, то вставляй то, что находится через один символ после него в переменнуюx = 'word'if x in line: index = line.index(x) + len(x) + 1 result = line[index:]print(result)>при открытии очень больших файлов python работает кривоВо-первых, пиши конкретно какая ошибка и я скажу в чем проблема. Если просто у тебя файлы по гигабайту (да и вообще лучше всегда так делать), лучше читать файл построчно, вот так lines = file.readlines()Это создаст итератор, который будет считывать по строке, ориентируясь на символ перевода строки. И ты можешь по нему циклом пройтись и обработать все строки подряд.
>>227084492Ну, сегодня я буду собеседоваться на вакансию со ставкой 4000$ после налогов, так что скорее продвинутый джун.
>>227076499 (OP)>Вкатываюсь в питон.Тогда для начала знай, что это ПЭЙТОН, ПАЙТОН, ПУЙТОН, а питон у тебя в штанах.
>>227085203Это ПИСТОН вообще-то!>>227085582Я выше писал про json. Это будет для него чуть сложнее вначале, зато потом с этим будет проще работать, чем с самописным костылем.
>>227085731Я отвечал на конкретные вопросы по питону, а не что ему лучше использовать для хранения данных.
>>227085731Ну ты вообще СТАЖЕР, ведь для хранения данных лучше использовать БД. Расшифрую для тебя эту аббревиатуру, наверное ты с таким ещё не сталкивался, это БАЗА ДАННЫХ, специально предназначена для хранения данных, а свои json можешь в жопу засунуть себе, пидрила.
>>227076499 (OP)Гугли готовые модули для работы с файлами для Phyton, да и вообще нихуя не понятно что ты там строчишь)))
>>227081997Хех, спасибо, ну тогда я тут буду всякие вебмочки постить скоро. Ну а вы пока можете пообщаться на всякие эти ваши IT-штуки в МОЁМ треде, хехе.
>>227076499 (OP)Ненадо изобретать БД. Юзай sqlite или встроенный в питон pickle. Изобретать свой формат - это всегда пиздец, так никогда не делают.
>>227076499 (OP)>Формат файла я представляю примерно в таком виде:Если "свойства элемена" не очень длинная структура/строка, то удобнее в TSV формат сделатьindex[tab]props[tab]idx_1[tab]idx_2index[tab]props[tab]idx_1[tab]idx_2...И потом простоimport csvwith open('filepath', 'r') as f: lines = f.read().splitlines() reader = csv.reader(lines, delimiter='\t') for index, props, idx_1, idx_2 in reader: # тут что-то делаешь с index, props, idx_1, idx_2
>>227096919В Питоне нет переменных потому что. Пусть долбаёб, который на тебя кукарекать стал, курит мат. часть.
>>227076499 (OP)>#Индекс элемента>#Свойства элемента>#Индекс связанных с ним элементов>#Индекс частично связанных с ним элементовТы только что описал функционал базы данных.
>>227097825>Ты же понимаешь, что это доёб уровня битового сдвига?Да, понимаю. Пусть мелкобуквенная мразь сначала на двочах писать научится.
>>227076499 (OP)>И как мне дальше обрабатывать эту строку?Если объемы обозримые, пиши сразу в питоновском формате и обрабатывай eval ом. Заодно все сразу в память сядет.
>>227076499 (OP)а зачем тебе что искать? ты ж написал оно по строкамтипа index = f.readline()properties = f.readline()linked_index = f.readline()partially_lined_index = f.readline()итд пока всё не прочитаешь
>>227097637Блядб, я вот сейчас смотрю на тыртубе по совету вот этого анона видео >>227083814 и там челик постоянно говорил variable, это он обьебывается, или где?
>>227076499 (OP)Прочитай про SQLite, должно хватить для этой задачи. Плюс мало зависимостей будешь тянуть, без всяких серваков.
>>227098150Объёбывается. Потому что в Питоне правда нет переменных. Специально к тому анону доебался уровня /b. Правильно говорить не "переменные", а "имена". Но это уже шиза какая-то, т.к. под "переменными" мы понимаем не реализацию, а само понятие. Поэтому вполне себе уместно говорить "Переменные". Но если хочешь задушить ебаклаку какого-то - можно повыёбываться.