Python列表数据结构主要用于在单个变量中存储多个项。Python列表与其他编程语言中的数组非常相似。列表的常用用例是将列表及其项存储到持久存储中,以便以后读取。在数据库中存储列表有不同的方法。但是,将一个列表放入数据库可能代价高昂,而且很难实现。另一种方法是序列化列表并将其存储在文件中。简单列表被写入一个文件。
使用Write()和Read()方法将列表写入和读取到文件中
为了将列表写入和读取到文件中,可以使用文件方法write()和read()。在下面的示例中,我们将创建一个名为countries和store countries的列表。此列表将写入名为“countries.txt”的文件中。
countries=['USA','Turkey','Germany']with open('countries.txt', 'w') as file: for country in countries: file.write('%s' % country)
我们可以看到每一项都存储在单独的行中。所以在这个例子中,列表项被一个接一个地迭代,每个项都被写入名为 国家.txt 在每一项中 “行尾已添加。
在将列表写入文件后,我们通常需要将此文件读入列表。将文件读入列表与写入文件非常相似。
countries=[]
with open('countries.txt', 'r') as filehandle:
for line in file:
countries.append(line[:-1])
使用writelines()和readlines()方法将列表写入和读取到文件中,
Python还提供 writelines() 和 读线() 方法,以便用一条语句写入和读取多行。writelines()可用于将列表写入文件。由于writelines()方法一次写入所有提供的数据,因此应该为每个列表项提供行尾。
countries=['USA','Turkey','Germany']
with open('countries.txt', 'w') as file:
file.writelines('%s' % country for country in countries)
可以使用readlines()方法读取文件写入列表。名为countries的文件使用readlines()方法读取所有行,并且每行都用它们迭代一个循环。每个行项目都存储在名为countries的列表中。
# define empty list
countries= []
# open file and read the content in a list
with open('countries.txt', 'r') as file:
countries = [country.rstrip() for country in file.readlines()]
使用pickle将列表写入和读取到文件中
pickle是Python提供的序列化和存储模块。pickle模块提供dump()方法,以便序列化提供的数据并将其存储在文件中。pickle模块以二进制格式序列化数据,这意味着写入的文件不能像文本文件那样读取。dump()方法接受两个参数,第一个是要序列化的数据,第二个是要存储的文件句柄。filehandle应该已经创建并且能够写入数据。
import pickle
countries=['USA','Turkey','Germany']
with open('countries.data', 'wb') as file:
pickle.dump(countries, file)
python列表存储文件可以用pickle.load()方法读取。pickle的load()方法只接受一个参数,即我们要读取的文件。
import pickle
countries=[]
with open('countries.data', 'rb') as file:
countries=pickle.load(file)