Python命令行参数linux

时间:2015-05-27 12:13:38

标签: python linux command-line terminal 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"

如果我通过输入python file.py testfile.txt

启动它

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

File exist

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

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

2 个答案:

答案 0 :(得分:11)

应该是sys.argv[1]而不是sys.argv[0]

filearg = sys.argv[1]

来自docs

  

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

答案 1 :(得分:4)

第一个参数始终是正在执行的文件的名称。对于许多编程语言都是如此,您需要使用sys.argv[1]