Python命令行参数linux

Voj*_*nek 2 python linux terminal command-line arguments

我有这个小程序(我知道有很多错误):

#!/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"
Run Code Online (Sandbox Code Playgroud)

如果我通过打字开始 python file.py testfile.txt

输出将始终(即使文件不存在):

File exist
Run Code Online (Sandbox Code Playgroud)

如果您不知道我想从这个程序中得到什么,我想打印"文件'文件名'未找到"如果文件不存在,如果它存在我想不打印"文件存在"

有什么想法可以解决吗?谢谢

Pad*_*ham 11

它应该sys.argv[1]不是sys.argv[0]:

filearg = sys.argv[1]
Run Code Online (Sandbox Code Playgroud)

来自文档:

传递给Python脚本的命令行参数列表.argv [0]是脚本名称(无论这是否是完整路径名,它依赖于操作系统).如果使用解释器的-c命令行选项执行命令,则将argv [0]设置为字符串'-c'.如果没有脚本名称传递给Python解释器,则argv [0]为空字符串.