簡體   English   中英

將變量保存並附加到 txt 文件

[英]Saving and appending variables to txt file

我在一個列表變量中使用了幾個變量,當工作完成后,我想將此變量保存到一個 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)]]

添加\\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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM