将格式从python保存到文本文件

时间:2014-04-06 14:24:20

标签: python file-io

说我有一个txt文件,

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')]。

我可以假设在使用时将进一步修改(追加和删除)列表。我的问题是,如何实现一个函数将列表导出为原始文件格式的txt文件?

1 个答案:

答案 0 :(得分:1)

您可以使用csv模块进行读写。

要遵循日期格式,请使用strptime()模块中的strftime()datetimedocs)。

这是一个完整的例子:

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

希望有所帮助。