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))