@@ -222,6 +222,7 @@ def __init__(self, files=None, inplace=False, backup="", bufsize=0, |
|
|
|
222 |
222 |
warnings.warn("'U' mode is deprecated", |
|
223 |
223 |
DeprecationWarning, 2) |
|
224 |
224 |
self._mode = mode |
|
|
225 |
+self._write_mode = mode.replace('r', 'w') if 'U' not in mode else 'w' |
|
225 |
226 |
if openhook: |
|
226 |
227 |
if inplace: |
|
227 |
228 |
raise ValueError("FileInput cannot use an opening hook in inplace mode") |
|
@@ -348,14 +349,14 @@ def _readline(self): |
|
|
|
348 |
349 |
try: |
|
349 |
350 |
perm = os.fstat(self._file.fileno()).st_mode |
|
350 |
351 |
except OSError: |
|
351 |
|
-self._output = open(self._filename, "w") |
|
|
352 |
+self._output = open(self._filename, self._write_mode) |
|
352 |
353 |
else: |
|
353 |
354 |
mode = os.O_CREAT | os.O_WRONLY |
os.O_TRUNC |
354 |
355 |
if hasattr(os, 'O_BINARY'): |
|
355 |
356 |
mode |= os.O_BINARY |
|
356 |
357 |
|
|
357 |
358 |
fd = os.open(self._filename, mode, perm) |
|
358 |
|
-self._output = os.fdopen(fd, "w") |
|
|
359 |
+self._output = os.fdopen(fd, self._write_mode) |
|
359 |
360 |
try: |
|
360 |
361 |
os.chmod(self._filename, perm) |
|
361 |
362 |
except OSError: |
|