Backwards-compatible input calls in Python
input, python, python-3.x, raw-input
Solution
Since the Python 2.x version of `input()` is essentially useless, you can simply overwrite it by `raw_input`:
try:
input = raw_input
except NameError:
pass
In general, I would not try to aim at code that works with both, Python 2.x and 3.x, but rather write your code in a way that it works on 2.x and you get a working 3.x version by using the `2to3` script.
Problem
I was wondering if anyone has suggestions for writing a backwards-compatible input() call for retrieving a filepath? In Python 2.x, raw_input worked fine for input like /path/to/file. Using input works fine in this case for 3.x, but complains in 2.x because of the eval behavior. One solution is to check the version of Python and, based on the version, map either `input` or `raw_input` to a new function: ``` if sys.version_info[0] >= 3: get_input = input else: get_input = raw_input ``` I'm sure there is a better way to do this though. Anyone have any suggestions?