Как вытащить массив из collections
Нужно в файл записать изменённую collections
import collections
import json
# список для записи, но с помощью json можно записывать любые объекты
lst = ['М3ГАН / M3GAN (2022) BDRip [H.264/720p] [MVO]', 'М3ГАН / M3GAN (2022) BDRip [H.264] [MVO]', 'Тысяча строк лжи / Tausend Zeilen / A Thousand Lines (2022) BDRip [MVO]', 'Пропавший король / The Lost King (2022) WEB-DL [H.264/1080p] [MVO]', 'Кокаиновый медведь / Cocaine Bear (2023) WEB-DL [H.264/1080p]', 'Моя пиратская свадьба / Shotgun Wedding (2022) WEB-DLRip [H.264]', 'Моя пиратская свадьба / Shotgun Wedding (2022) WEB-DL [H.264/720p]', "Шакра / Tian long ba bu zhi qiao feng chuan / Donnie Yen's Sakra / Sakra (2023) BDRip [MVO]", 'Одиноки вместе / Alone Together (2022) BDRip [H.264]', 'Оставленные позади: Восстание антихриста / Left Behind: Rise of the Antichrist (2023) BDRip [MVO]', 'Малышка Дикси / Little Dixie (2023) WEB-DLRip [H.264] [MVO]', 'Моя пиратская свадьба / Shotgun Wedding (2022) WEB-DL [H.264/1080p]', 'Моя пиратская свадьба / Shotgun Wedding (2022) UHD WEB-DL [H.265/2160p] [4K, HDR10+, 10-bit]', 'Кокаиновый медведь / Cocaine Bear (2023) WEB-DLRip [H.264] [MVO]', 'Марлоу / Marlowe (2022) WEB-DLRip [H.264/720p]', 'Марлоу / Marlowe (2022) WEB-DL [H.264/1080p]', 'Марлоу / Marlowe (2022) UHD WEB-DL [H.265/2160p] [4K, HDR10+, 10-bit]', 'Марлоу / Marlowe (2022) WEB-DLRip [H.264]', 'Операция «Фортуна»: Искусство побеждать / Operation Fortune: Ruse de guerre (2022) WEB-DLRip [H.264/1080p] [MVO]']
# открываем файл в режиме записи (обязательно)
# файл не нужно закрывать если используется с `with`
with open('file1.txt', 'w') as fw:
# записываем
json.dump(lst, fw)
# открываем файл в режиме чтения
with open('file1.txt', 'r') as fr:
# читаем из файла
array = json.load(fr)
posted_q_2 = collections.deque((array), maxlen=20)
print(array)
print(posted_q_2)
posted_q_2.appendleft('Новый фильм')
print(posted_q_2)
Ответы (1 шт):
Автор решения: Александр
→ Ссылка
В исходном примере вы уже записываете в файл и читаете из файла, поэтому не очень понятно, что именно при выполнении задачи у вас вызвало трудности.
Но осмелюсь предположить, что они были связаны с тем, что экземпляр collections.deque не является сериализуемым объектом и при попытке сериализации в json могла выпасть соответствующая ошибка. Эта проблема решается конвертацией последовательности в любой сериализуемый тип, например, в список: list(posted_q_2)
Итого:
with open('file2.txt', 'w', encoding='utf-8') as fw:
json.dump(list(posted_q_2), fw)