Задать вопрос
@Dima_E

Python как записать в фаил, переменные лист и словарь?

Пользовался configparser запись и перезапись переменных удобна, но как понял записать список или словарь, будет сложно, пришлось бы мудрить и записывать каждое значение как отдельную переменную, а потом их так же доставать и собирать обратно.
Если возможность с помощью какой то команды делать запись словарей/кортежей/списков ?

Так как в сутки могу задать только 2 вопроса позвольте задать тут же ещё один.

Как сделать красивую запись в фаил ? А точнее программа записывать что делает в фаил, но так как слова разной длинны выглядит не очень, можно ли сделать чтобы каждое последующие слово писалось с определённым отступом от начала строки ?
  • Вопрос задан
  • 1038 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 2
@bbkmzzzz
файл пишется в текстовом виде, библиотека поддерживает все стандартные классы данных (dict, tuple, list, set и т.д) разбирает числовые данные по типу, булевы разбирает в True/False
Дополнительно умеет возвращать строку (без записи в файл) через функции dumps/loads
import json
# имя файла, в котором мы сохраним объект
shoplistfile = 'shoplist.data'
# список покупок
shoplist = ['яблоки', 'манго', 'морковь']
# Запись в файл
with open(shoplistfile, 'w+') as fle:  # менеджер контекста, файл закроется при выходе из блока
    json.dump(shoplist, fle, indent='    ')  # indent - отступы форматирования

del shoplist  # уничтожаем переменную shoplist

# Считываем из хранилища
with open(shoplistfile, 'r') as fle:
    shoplist = json.load(fle)

print(shoplist)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dima_E Автор вопроса
Для красивой записи или выравнивания, в cmd или при записи в фаил, нашёл такое решение как ljust
print ("{0} {1} {2}".format("банан".ljust(25),"яблоко".ljust(25),"лимон".ljust(25)))
банан                     яблоко                    лимон

Как я понял, следующие значение пишется с отступом указанным в .ljust()
от начала значения у которого этот аргумент стоит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы