命令行输入

时间:2014-02-27 19:20:20

标签: python loops command-line-arguments

我需要编写一个完整的程序来获取三个数据然后处理它们。这三条信息是布尔值,字符串和整数。程序的逻辑是这样的:如果布尔值为True,则打印出两次字符串,一次使用双引号,一次不打印 - 否则打印两次数字。哪个我可以做得很好,但后来我必须编写相同的程序,但这次使用命令行输入,下面的程序是我到目前为止,但我一直得到一个命令没有找到错误。我觉得我的“为我在范围“是错误

 import sys

 def main():
     x = sys.argv[0].lower() == 'true'
     y = str(sys.argv[1])
     z = int(sys.argv[2])
     for i in range(0,len(sys.argv),1):
        print("   ",i,":",sys.argv[i])
     return 0;

2 个答案:

答案 0 :(得分:1)

“未找到命令”是文件不在$ PATH中或从未变为可执行文件时的shell响应。首先确保它可以用

执行
chmod +x myfile.py

第二个确保它在你的路径

which myfile.py

如果它不在您的路径中,您需要使用显式路径执行它,例如'./myfile.py'

如果它不可执行且您没有将其更改为可执行文件,则需要使用

python [full path or .]/myfile.py

在你的评论中,你说你用“python3”双重检查执行它,它是对你的系统的正确调用。

我几乎忘了添加脚本中的第一行需要

#!/usr/bin/python

或系统中的任何python指向

答案 1 :(得分:0)

def main():
     x = sys.argv[1].lower() == 'true'
     y = str(sys.argv[2])
     z = int(sys.argv[3])
     if x:
         print "'{}'".format(y)
         print '"{}"'.format(y)
     else:
         print 2*z
     return 0;
if __name__ == '__main__':
     main()

将此保存为myfile.py
然后从shell运行:chmod +x myfile.py && python myfile.py