我将要在python中实现一个类,该类可从文本文件中读取行,并且应根据命令的名称加载不同的变量。示例:
---- command_name_1 ----
field 1:
field 2:
field 3:
---- command_name_2 ----
field 4:
field 5:
---- command_name_1 ----
field 1:
field 2:
每个命令中的字段数不一定相同,并且大约有十个不同的命令,它们应该以不同的方式加载数据。该文件太大,无法使用.readlines()加载。我想知道是否有任何巧妙的方法可以将其作为执行此类任务的设计模式?
答案 0 :(得分:0)
对于超大文件,建议您使用yield。这是一个示例:
def read_in_chunks(file_object, chunk_size=1024):
"""Read a file piece by piece. Default chunk size: 1k."""
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data
f = open('really_big_file.dat')
for piece in read_in_chunks(f):
process_data(piece)
这应该使您轻松读取文件。您可以修改此代码以包含一个Switch,在每种情况下它都可以是一个命令,您可以在其中执行所需的任何操作。