我的目标是有一个文本文件,它允许我将数据追加到末尾,并从文件中检索和删除第一个数据条目。实际上,我想使用文本文件作为队列(先进先出)。我想了两种方法来实现这一点,但我不确定哪种方法更像Python,更有效。第一种方法是使用json库。在
import json
def add_to_queue(item):
q = retrieve_queue()
q.append(item)
write_to_queue(q)
def pop_from_queue():
q = retrieve_queue()
write_to_queue(q[1:])
return q[0]
def write_to_queue(data):
with open('queue.txt', 'w') as file_pointer:
json.dump(data, file_pointer)
def retrieve_queue():
try:
with open('queue.txt', 'r') as file_pointer:
return json.load(file_pointer)
except (IOError, ValueError):
return []
看起来很干净,但是每次写/读时都需要对所有json数据进行序列化/反序列化,尽管我只需要列表中的第一项。在
第二个选项是调用readlines()
和writelines()
来检索和存储文本文件中的数据。在
这两种方法都很好,所以我的问题是:实现“文本文件队列”的推荐方法是什么?使用json是否比自己读写文件“更好”(更Pythonic/faster/more memory efficient)?基于问题的简单性,这两个解决方案似乎都相当复杂;我是否错过了一个更明显的方法来实现这一点?在
目前没有回答
相关问题 更多 >
编程相关推荐