python - 将列表从 python 保存到文本文件中

标签 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), '幻想'), (datetime.datetime(2014, 4, 3, 0,
0), '历史'), (datetime.datetime(2014, 4, 12, 0, 0), '科幻')]。

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

最佳答案

您可以使用csv阅读和写作模块。

为了遵循日期格式,请使用 datetime 模块中的 strptime()strftime() ( docs )。

这是一个完整的示例:

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

希望有帮助。

关于python - 将列表从 python 保存到文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895333/

相关文章:

java - 如何使用java仅压缩文件夹中的.txt文件?

java - 你如何连续读取 Java 中的文件?

C 从文件内容创建字符串,Sedona 根

java - Libgdx 如何获取目录中的文件列表?

python - 如何使用数据发生变化的位置索引 Pandas 数据框

python - 使用 matplotlib 和 alpha 值导出图形

python - Matplotlib:绘制数据然后进行时间序列预测

python - (python) 使用 beautiful soup 解析某些 HTML 输出标签

python - 使用 pandas pd.cut 生成带有 statsmodels 的分类变量

mysql - 来自 .CSV 的 'LOAD DATA INFILE' 警告 - 整数和日期