<p>您只需要一种方法,但这里有两种变体和单个文件读取函数,它不会一次读取整个文件(最多存储3-4行):</p>
<pre><code># **kwarg is a dictionary. It can hold any number of keyword arguments.
class obj1:
def __init__(self, **kwarg):
self.attributes = kwarg
# t,u,v as actual class attributes
class obj2:
def __init__(self, t, u, w):
self.t = t
self.u = u
self.w = w
objects1 = []
objects2 = []
with open("input_file", "r") as f:
lines = []
for line in f:
line = line.strip()
lines.append(line)
if line.startswith("W"):
objects1.append(obj1(t=lines[-3], u=lines[-2], w=lines[-1]))
objects2.append(obj2(t=lines[-3], u=lines[-2], w=lines[-1]))
lines = []
# same output but different ways of accessing the attributes
for o in objects1:
print o.attributes["t"]
print o.attributes["u"]
print o.attributes["w"]
for o in objects2:
print o.t
print o.u
print o.w
</code></pre>
<p>输入文件:</p>
<pre><code>$ cat input_file
total number:18572084
T 2009-06-01 21:43:59
U http://twitter.com/burtonator
W No Post Title
T 2009-06-01 21:47:23
U http://twitter.com/burtonator
W No Post Title
T 2009-06-02 01:15:44
U http://twitter.com/burtonator
W No Post Title
</code></pre>