Как вылить файл pickle в новые строки? - PullRequest
1 голос
/ 14 апреля 2019

Вот мой код:

f = open("cities.txt", 'wb')
pickle.dump(city_list, f)
f.close()

Обычно я знаю, чтобы печатать список по вертикали, в новые строки, вы делаете это внутри оператора print: print (* city_list, sep = '\ n').Я хочу знать, есть ли способ сделать это при создании файла pickle, чтобы при его открытии вы видели вертикальный список, не делая ничего другого.Например, когда я открываю файл:

fh = open("cities.txt", 'rb')
x = pickle.load(fh)
print(x)

Я хочу, чтобы вывод был вертикальным списком без необходимости добавлять sep = '\ n' в оператор печати. ​​

1 Ответ

0 голосов
/ 14 апреля 2019

После того, как вы загрузили свои маринованные данные, они уже были преобразованы в обычный список Python. Тогда вы спрашиваете: как я могу напечатать элементы списка, по одному элементу в строке?

Ответ прост:

for item in x:
    print(item)

Если вместо этого вы хотите, чтобы выходной файл был более читабельным для человека, вы должны закодировать свои данные в формате, отличном от того, что предлагает модуль протравливания Python.

Использование CSV:

import csv

city_list = [
    ('Montreal', 'Canada'),
    ('Belmopan', 'Belize'),
    ('Monaco', 'Monaco'),
]

with open('cities.txt', 'w') as file:
    writer = csv.writer(file)

    for city, country in city_list:
        writer.writerow(city, country)

В результате вы получите файл towns.txt, содержащий следующее:

Монреаль, Канада

Belmopan, Белиз

Монако, Монако

...