将列表从Python保存到文本文件格式
假设我有一个文本文件,
fantasy,12/03/2014
sci-fi,13/04/2014
history,03/04/2014
然后我用下面的代码把它转换成一个Python列表。
def load_list(filename):
my_file = open(filename, "rU")
my_list = []
for line in my_file:
a,b = line.rstrip("\n").split(",")
my_list.append((as_datetime(b),a))
my_file.close()
return my_list
这个代码的输出结果是:
[(datetime.datetime(2014, 3, 12, 0, 0), 'fantasy'), (datetime.datetime(2014, 4, 3, 0,
0), 'history'), (datetime.datetime(2014, 4, 12, 0, 0), 'sci-fi')]。
我可以假设这个列表在使用过程中会被进一步修改,比如添加和删除元素。我的问题是,如何实现一个函数,把这个列表导出为一个文本文件,并且保持和原文件一样的格式呢?
1 个回答
1
你可以使用 csv 模块来读取和写入数据。
为了按照日期格式处理数据,可以使用 strptime()
和 strftime()
这两个函数,它们来自 datetime
模块,具体可以查看 文档。
下面是一个完整的例子:
import csv
from datetime import datetime
FORMAT = '%d/%m/%Y'
def load_list(filename):
my_list = []
with open(filename, "rU") as f:
reader = csv.reader(f)
for line in reader:
my_list.append([line[0], datetime.strptime(line[1], FORMAT)])
return my_list
def save_list(filename, my_list):
with open(filename, "w") as f:
writer = csv.writer(f)
for item in my_list:
writer.writerow([item[0], item[1].strftime(FORMAT)])
my_list = load_list('input.txt')
save_list('output.txt', my_list)
这个例子会从 input.txt
文件中读取数据,然后把这些数据写入到 output.txt
文件中。运行这个脚本后,output.txt
的内容和 input.txt
是一样的:
fantasy,12/03/2014
sci-fi,13/04/2014
history,03/04/2014
希望这对你有帮助。