bpo-1613500: Don't hardcode output file mode in fileinput.FileInput (GH-12986)

diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index 4a71cc5..0764aa5 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -222,6 +222,7 @@
             warnings.warn("'U' mode is deprecated",
                           DeprecationWarning, 2)
         self._mode = mode
+        self._write_mode = mode.replace('r', 'w') if 'U' not in mode else 'w'
         if openhook:
             if inplace:
                 raise ValueError("FileInput cannot use an opening hook in inplace mode")
@@ -348,14 +349,14 @@
                 try:
                     perm = os.fstat(self._file.fileno()).st_mode
                 except OSError:
-                    self._output = open(self._filename, "w")
+                    self._output = open(self._filename, self._write_mode)
                 else:
                     mode = os.O_CREAT | os.O_WRONLY | os.O_TRUNC
                     if hasattr(os, 'O_BINARY'):
                         mode |= os.O_BINARY
 
                     fd = os.open(self._filename, mode, perm)
-                    self._output = os.fdopen(fd, "w")
+                    self._output = os.fdopen(fd, self._write_mode)
                     try:
                         os.chmod(self._filename, perm)
                     except OSError: