diff --git a/pre_commit_hooks/end_of_file_fixer.py b/pre_commit_hooks/end_of_file_fixer.py
index 4e77c94..1c07379 100644
--- a/pre_commit_hooks/end_of_file_fixer.py
+++ b/pre_commit_hooks/end_of_file_fixer.py
@@ -1,20 +1,16 @@
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import argparse
 import os
-import sys
 from typing import IO
 from typing import Optional
 from typing import Sequence
 
 
-def fix_file(file_obj):  # type: (IO[bytes]) -> int
+def fix_file(file_obj: IO[bytes]) -> int:
     # Test for newline at end of file
     # Empty files will throw IOError here
     try:
         file_obj.seek(-1, os.SEEK_END)
-    except IOError:
+    except OSError:
         return 0
     last_character = file_obj.read(1)
     # last_character will be '' for an empty file
@@ -52,7 +48,7 @@
     return 0
 
 
-def main(argv=None):  # type: (Optional[Sequence[str]]) -> int
+def main(argv: Optional[Sequence[str]] = None) -> int:
     parser = argparse.ArgumentParser()
     parser.add_argument('filenames', nargs='*', help='Filenames to fix')
     args = parser.parse_args(argv)
@@ -64,11 +60,11 @@
         with open(filename, 'rb+') as file_obj:
             ret_for_file = fix_file(file_obj)
             if ret_for_file:
-                print('Fixing {}'.format(filename))
+                print(f'Fixing {filename}')
             retv |= ret_for_file
 
     return retv
 
 
 if __name__ == '__main__':
-    sys.exit(main())
+    exit(main())
