Как создать функцию для записи в файлы (txt, csv, json)?
Пишу функцию для записи фаила json Файл создается, но пустой. код:
def write_file():
with open('file_json.json', "w", encoding="utf-8") as file_json:
file_json = create_randome_dict_json_file()
data = json.dumps(file_json)
return data
print(generate_and_write_file())
Ранее я сгенерировал: таблицу для записи в файл csv (create_random_list_csv()), словарь для записи в файл json (create_randome_dict_json_file()) строку для записи в файл txt (create_randome_txt_data()) Мне нужно написать функцию, например write_file которая принимает один параметр - полный путь к файлу. В зависимости от расширения файла (txt, csv, json) сгенерировать данные для записи и записать в данный файл. Если расширение не соответствует заданным, то вывести текст "Unsupported file format"
Вопрос: как его наполнить и может можно сделать все 1 функцией, для всех файлов?
Ответы (1 шт):
- Вы документацию внимательно читали? json.dumps никоим образом не пишет в файл. А служит лишь для конвертации объекта Python в строку json.
Запись в json-файл выполняется методом json.dump:
with open("data_file.json", "w") as write_file:
json.dump(data, write_file)
Ну а то, что file_json вы используете сначала как идентификатор объекта а потом вообще переопределяете непонятно как - это отдельный вопрос.
- Функцию, например write_file
Непонятно в чем вопрос. Объединить в одну функцию можно. Это функция должна псоледовательно делать следующее: Читать данные, парсить и проверяеть расширение. В зависимости от результата вызывать один из трех ваших генераторов и соответственно - одну из трех разных функций записи.