4 def __init__(self
, file, mode
, bufsize
):
7 self
.__backup
= file + '~'
9 os
.unlink(self
.__backup
)
13 os
.rename(file, self
.__backup
)
16 self
.__file
= _orig_open(file, mode
, bufsize
)
17 self
.closed
= self
.__file
.closed
18 self
.fileno
= self
.__file
.fileno
19 self
.flush
= self
.__file
.flush
20 self
.isatty
= self
.__file
.isatty
21 self
.mode
= self
.__file
.mode
22 self
.name
= self
.__file
.name
23 self
.read
= self
.__file
.read
24 self
.readinto
= self
.__file
.readinto
25 self
.readline
= self
.__file
.readline
26 self
.readlines
= self
.__file
.readlines
27 self
.seek
= self
.__file
.seek
28 self
.softspace
= self
.__file
.softspace
29 self
.tell
= self
.__file
.tell
30 self
.truncate
= self
.__file
.truncate
31 self
.write
= self
.__file
.write
32 self
.writelines
= self
.__file
.writelines
36 if self
.__backup
is None:
39 # don't use cmp.cmp because of NFS bugs :-( and
40 # anyway, the stat mtime values differ so do_cmp will
41 # most likely be called anyway
42 if cmp.do_cmp(self
.__backup
, self
.__filename
):
44 os
.unlink(self
.__filename
)
45 os
.rename(self
.__backup
, self
.__filename
)
47 def open(file, mode
= 'r', bufsize
= -1):
49 return _orig_open(file, mode
, bufsize
)
50 return _BkFile(file, mode
, bufsize
)