Обучающий курс: stepik.org/course/100707 Выполняем запись в файл в текстовом и бинарном режимах доступа. Методы: write(), writelines() и функции load() и dump() модуля pickle. Telegram-канал: t.me/python_selfedu
Я вас приветсвую!!! Я выполнил запись и чтения как функцию def() где я записал список . но никак не могу вывести данные в глобальные переменые для дальнейшей обработки данных. И еще в файл txt записанный ctr список при чтении у него форма списка [ '200','222', '322','122','224',] но не читается как списо например print a[0] распечатывается скобка [ так далее. Помогите разясните почему так происходит. Сергей прошу поясни где я недопонимаю.
То есть, БИНАРНЫЙ режим записи/чтения - это те же запись/чтение, только без кодировки(конвертации в удобочитаемый вид), как в текстовом режиме. Текстовый режим используется, когда файл с данными будеТ читать и живой человек, и программа. А бинарный режим - в случаях, когда файл хранит данные не для того, чтобы их глазами читал человек, а только чтобы использовать этот файл для дальнейшего использования программой. Верно я понял?
Бинарный режим доступа похож на доступ к ячейкам оперативной памяти, только эти ячейки хранятся в файле, т.е. никаких искажений и предобработки данных не осуществляется, как в текстовом режиме.
спасибо за ваши уроки!!! в конце видео мы считывали списки из файла в 4 переменные. но если я не знаю, сколько там таких списков и хочу увидеть их все, какую команду надо ввести?
На времени 7:48 происходит считывание данных с файла, но перед этой командой мы добавляем данные в конец. Считывание происходит с начала файла, однако при считывании не выводятся только что записанные данные. Почему? Аналогичная ситуация и на 8:34
write не пишет данные на диск, точнее не гарантирует запись. оно всё буферизируется в памяти до закрытия файла, а там уже пишется. чтобы принудительно сбросить данные из буфера на диск есть flush() ну или переоткрыть файл
Шеф, подскажите или возможно поучиться снять практический урок - как создать на Python службу для Windows и для Linux. И как организовать обмен зашифрованными сообщениями через сервер с белым IP, при этом клиенты за NAT.
уже битый час сижу и не пойму как удалить строку в текстовом файле. Получается это напрямую невозможно? Т.е. надо скопировать текстовый файл в переменную, в переменной произвести необходимые манипуляции и потом эту переменную заново записать в текстовый файл?..
Кто-нибудь может объяснить нубу, почему на 13:24 мы прописываем отдельно каждую b (b1-b4), если это всего лишь переменные, каждая из которых ссылается в итоге на один и тот же записанный файл целиком, а не на book1-book4 в отдельности? Если мы запишем просто: "b = pickle.load(file)" - разве мы не должны по логике получить тот же результат?
Чтение идет по строкам, т.е. можно дабы не задумываться, сколько у нас их там собрать всё в цикле, может и есть какое-то более элегантное решение: temp_list = [] with open('out.bin', 'rb') as file: while True: try: temp_list.append(pickle.load(file)) except EOFError: break В temp_list будет собран список с нашими списками.