Skip to content
Advertisement

Python command line arguments linux

I have this little program(I know there is a lot of errors):

#!/usr/bin/python

import os.path
import sys

filearg = sys.argv[0]

if (filearg == ""):
    filearg = input("")

else:

    if (os.path.isfile(filearg)):
        print "File exist"

    else:
        print"No file"
        print filearg
        print "wasn't found"

If i start it by typing python file.py testfile.txt

the output will be always(even if the file doesn’t exist):

File exist

If you don’t know what iam want from this program, i want to print “File ‘filename’ wasn’t found” if the file isn’t exist and if it’s exist iam wan’t to print “File exist”

Any ideas to solve it? Thanks

Advertisement

Answer

It should be sys.argv[1] not sys.argv[0]:

filearg = sys.argv[1]

From the docs:

The list of command line arguments passed to a Python script. argv[0] is the script name (it is operating system dependent whether this is a full pathname or not). If the command was executed using the -c command line option to the interpreter, argv[0] is set to the string ‘-c’. If no script name was passed to the Python interpreter, argv[0] is the empty string.

Advertisement