如何将泡菜文件转储到新行中



这是我的代码:

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

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

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

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

一旦你加载了你的腌制数据,它已经被转换为一个常规的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)

这将导致包含以下内容的城市.txt:

蒙特利尔,加拿大

贝尔莫潘,伯利兹

摩纳哥,摩纳哥

最新更新