bpo-31281: Fix pathlib.Path incompatibility in fileinput (gh-3208)

Fix fileinput with inplace=True to accept pathlib.Path objects.
diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index 363c241..c6fc9a1 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -330,7 +330,7 @@
         else:
             if self._inplace:
                 self._backupfilename = (
-                    self._filename + (self._backup or ".bak"))
+                    os.fspath(self._filename) + (self._backup or ".bak"))
                 try:
                     os.unlink(self._backupfilename)
                 except OSError:
diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py
index 5df810c..d7efc68 100644
--- a/Lib/test/test_fileinput.py
+++ b/Lib/test/test_fileinput.py
@@ -544,6 +544,19 @@
         finally:
             remove_tempfiles(t1)
 
+    def test_pathlib_file_inplace(self):
+        t1 = None
+        try:
+            t1 = Path(writeTmp(1, ['Pathlib file.']))
+            with FileInput(t1, inplace=True) as fi:
+                line = fi.readline()
+                self.assertEqual(line, 'Pathlib file.')
+                print('Modified %s' % line)
+            with open(t1) as f:
+                self.assertEqual(f.read(), 'Modified Pathlib file.\n')
+        finally:
+            remove_tempfiles(t1)
+
 
 class MockFileInput:
     """A class that mocks out fileinput.FileInput for use during unit tests"""
diff --git a/Misc/NEWS.d/next/Library/2017-08-29-07-14-14.bpo-31281.DcFyNs.rst b/Misc/NEWS.d/next/Library/2017-08-29-07-14-14.bpo-31281.DcFyNs.rst
new file mode 100644
index 0000000..7fc8229
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2017-08-29-07-14-14.bpo-31281.DcFyNs.rst
@@ -0,0 +1,2 @@
+Fix ``fileinput.FileInput(files, inplace=True)`` when ``files`` contain
+``pathlib.Path`` objects.