pythonlinuxshellterminal

Starting a python shell with arguments


is it possible to pass arguments to the python in linux without having a file? I'm currently not able to create a file or change permissions and I don't want to write it inside my code like this:

import sys
sys.argv = ["arg1", "arg2", ...]

I'd like to hand over the arguments while I'm starting the shell:

python <arguments>

Solution

  • While it is questionable if passing commands line arguments to an interactive shell is best practice, it is indeed possible by passing - instead of the script's file name:

    $ python - a1 a2
    Python 2.7.14 (default, Sep 23 2017, 22:06:14) 
    [GCC 7.2.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.argv
    ['-', 'a1', 'a2']