Я пытаюсь написать текстовый файл из словаря, в котором значения словаря представляют собой список, который я хочу преобразовать в строку с разделителями ",", например:
["string1","string2","string3"] --> "string1,string2,string3"
Когда список становится одной строкой, я хочу написать его ключ (также строку с разделителем :) с соответствующей строкой:
"key1:string1,string2,string3"
"key2:string4,string5,string6"
"key3:string7,string8,string9"
Это то, что должно быть написано в текстовом файле. Словарь будет выглядеть, например, так:
{'key1': ['string1', 'string2', 'string3'], 'key2': ['string4', 'string5', 'string6'], 'key3': ['string7', 'string8', 'string9']}
Вот функция, которая у меня есть до сих пор, но, как показано, ее здесь немного:
def quit(dictionary):
with open("file.txt", 'w') as f:
for key, value in dictionary.items():
f.write('%s:%s\n' % (key, value))
Однако он делает каждый элемент в текстовом файле списком, поэтому я не уверен, как это исправить. Я не хочу использовать встроенные модули (такие как json), просто простые циклы for и основные команды ввода-вывода.
Вы можете использовать str.join
, чтобы соединить значения словаря с ,
:
dct = {
"key1": ["string1", "string2", "string3"],
"key2": ["string4", "string5", "string6"],
"key3": ["string7", "string8", "string9"],
}
with open("output.txt", "w") as f_out:
for k, v in dct.items():
print("{}:{}".format(k, ",".join(v)), file=f_out)
Это создает файл output.txt
:
key1:string1,string2,string3
key2:string4,string5,string6
key3:string7,string8,string9
@Cr3D Вы можете использовать f_out.write("{}:{}\n".format(k, ",".join(v)))
Будет ли метод использовать write()?