将变量保存并附加到txt文件

2024-09-28 19:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我将几个变量用在一个列表变量中,当工作完成后,我想将这个变量保存到一个txt文件中以供进一步使用

这段代码的工作原理是,它不在txt文件中的新行中追加(尽管我对新行使用了\n),但它只是增加了同一行上的变量

ess[0].append(ess_e), ess[1].append(essv), ess[2].append(essp), ess[3].append(essq), ess[4].append(ess_s), ess[5].append(ess_d)
file = open("relais.txt", "w")
file.write(repr(ess) + "\n")
file.close()

程序的第一次运行很好,下面是txt文件

[[datetime.datetime(2021, 7, 18, 11, 31, 35, 4978)], ['61'], ['mo'], ['145'], [datetime.datetime(2021, 7, 18, 11, 31, 42, 3653)], [datetime.timedelta(seconds=6, microseconds=998675)]]

但第二次跑步时,我看到了这一点,在1行中

[[datetime.datetime(2021, 7, 18, 11, 31, 35, 4978), datetime.datetime(2021, 7, 18, 11, 33, 33, 920715)], ['61', '54'], ['mo', 'kj'], ['145', '10'], [datetime.datetime(2021, 7, 18, 11, 31, 42, 3653), datetime.datetime(2021, 7, 18, 11, 33, 42, 932126)], [datetime.timedelta(seconds=6, microseconds=998675), datetime.timedelta(seconds=9, microseconds=11411)]]

我希望第一个结果在第1行,第二个结果在第2行,依此类推

我怎么告诉他把它写成一行,而不是把变量字段合并在一起得到这个呢

[[datetime.datetime(2021, 7, 18, 11, 31, 35, 4978)], ['61'], ['mo'], ['145'], [datetime.datetime(2021, 7, 18, 11, 31, 42, 3653)], [datetime.timedelta(seconds=6, microseconds=998675)]]
[[datetime.datetime(2021, 7, 18, 11, 33, 33, 920715)], ['54'], ['kj'], ['10'], [datetime.datetime(2021, 7, 18, 11, 33, 42, 932126)], [datetime.timedelta(seconds=9, microseconds=11411)]]

Tags: 文件代码txt列表datetimefiletimedelta原理
1条回答
网友
1楼 · 发布于 2024-09-28 19:23:54

添加\n不起作用的原因是数据不在行中,而是按字段分组。我使用了列表理解来获取分组数据并将其转换为行。然后,您可以使用\n".join(获取每一行,并用换行符将其连接起来,从而获得预期的输出

rows = [[group[n] for group in ess] for n in range(len(ess[0]))]
file = open("relais.txt", "w")
file.write("\n".join([repr(x) for x in rows]))
file.close()

相关问题 更多 >