如何将 pickle 文件转储到新行中?

How to dump pickle file into new lines?

这是我的代码:

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

我知道通常要垂直打印一个列表,换行,您可以在打印语句中执行此操作:print(*city_list, sep='\n')。我想知道在创建 pickle 文件时是否有办法做到这一点,这样当您打开它时,您会看到一个垂直列表,而无需执行任何其他操作。例如,当我打开文件时:

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

我希望输出是一个垂直列表,而不必在打印语句中添加 sep='\n'。

加载腌制数据后,它已经转换为常规 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)

这将导致 cities.txt 包含以下内容:

Montreal,Canada

Belmopan,Belize

Monaco,Monaco