diff --git a/Lib/posixfile.py b/Lib/posixfile.py index 589510d55ed..dcd65cd69d0 100644 --- a/Lib/posixfile.py +++ b/Lib/posixfile.py @@ -75,12 +75,16 @@ def open(self, name, mode='r', bufsize=-1): return self.fileopen(__builtin__.open(name, mode, bufsize)) def fileopen(self, file): + import types if `type(file)` != "": raise TypeError, 'posixfile.fileopen() arg must be file object' self._file_ = file # Copy basic file methods - for method in file.__methods__: - setattr(self, method, getattr(file, method)) + for maybemethod in dir(file): + if not maybemethod.startswith('_'): + attr = getattr(file, maybemethod) + if isinstance(attr, types.BuiltinMethodType): + setattr(self, maybemethod, attr) return self #