1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 """A wrapper for sys.stdout etc that provides tell() for current position"""
23
26 self.stream = stream
27 self.pos = 0
28 self.closed = 0
29
31 return getattr(self.stream, attrname, default)
32
34 if not self.closed:
35 self.closed = 1
36 self.stream.close()
37
38 - def seek(self, pos, mode = 0):
39 raise ValueError, "I/O operation on closed file"
40
42 if self.closed:
43 raise ValueError, "I/O operation on closed file"
44 return self.pos
45
47 if self.closed:
48 raise ValueError, "I/O operation on closed file"
49 self.stream.write(s)
50 self.pos += len(s)
51
53 if self.closed:
54 raise ValueError, "I/O operation on closed file"
55 self.stream.writelines(lines)
56 self.pos += len("".join(lines))
57