繁体   English   中英

使用Python将列表中的数据保存到文本文件中

[英]saving a structure of a list with the data in a text file using Python

我有一个元组列表的列表,我想将它们存储为字符串形式的文本文件,然后从另一个Python脚本中读取它,并使用ast.literal_eval将其从字符串转换为列表。

我的问题是,是否有可能不仅将列表中的数据写入文本文件,而且还可能将元组列表的整个结构写入文本文件。

例如,具有这样的文本文件:

[[(365325.342877, 4385460.998374), (365193.884409, 4385307.899807), (365433.717878, 4385148.9983749995)]]

这有意义吗?

这听起来比写文本文件和使用ast.literal_eval更适合pickle

>>> import pickle
>>> l = [(1,2),(3,4)]
>>> with open('new_pickle.txt', 'wb') as f:
    pickle.dump(l, f)

>>> ================================ RESTART ================================
>>> import pickle
>>> with open('new_pickle.txt' ,'rb') as f:
    l = pickle.load(f)

>>> l
[(1, 2), (3, 4)]
>>> 

只要所有值都是具有文字表示形式的Python内置值(例如,int,float,str,bytes),写出repr都可以。 但是你不应该这样做。 它仅限于Python文字且速度较慢。 使用pickle模块 (Python标准)来序列化任意数据; 它速度更快,可用于缺少文字表示形式的类型,并且(通常)产生较小的输出(尤其是在使用协议2和更高版本的协议时)。

编辑 :关于重现性的问题:泡菜可精确地重现原始结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM