我有这个小程序(我知道有很多错误):
#!/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
如果你不知道我想从这个程序中得到什么,我想打印"文件'文件名'没找到"如果文件不存在,如果它存在,我就不打印"文件存在"
有什么想法可以解决吗? 感谢
答案 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]