Search code examples
pythonread-eval-print-loopargvsys

sys.argv[0] always returns nothing


I was trying to use sys.argv[0] to get the name of the script but it returned nothing. I guess that was because no script name was passed to the Python interpreter but I had no idea how to fix it.

my code:

import sys
print ("This is the name of the script: ", sys.argv[0])
sys.argv[0]

outputs:

>>> import sys
>>> print ("This is the name of the script: ", sys.argv[0])
This is the name of the script:
>>> sys.argv[0]
''

Thank you


Solution

  • Well, that's well expected,

    you're running your code on the interpreter, which is not any module nor file, so sys.argv knows that and gives you an empty string.

    It's a good sign.

    If you run it in an actual module or file, it will work perfectly, as expected.