执行python脚本时出错

时间:2014-08-06 22:50:39

标签: python bash

当我尝试使用参数执行python脚本时,脚本失败并显示以下错误:

-bash: syntax error near unexpected token `"Lary",'

我尝试执行这样的脚本:

display("Lary", 43, "M")

我的代码

#! /usr/bin/python

def display(name, age, sex):
  print "Name: ", name
  print "Age: ", age
  print "Sex: ", sex

我尝试设置脚本的执行权限(chmod 755 test.py),我总是得到同样的错误。

有什么问题?

4 个答案:

答案 0 :(得分:3)

如果我理解正确,你想运行类似的东西:

    ./test.py "Lary" 43 "M"
从命令行

。为此,您可以正确设置权限。但是您需要使用sys模块访问命令行参数:

    #! /usr/bin/python
    import sys

    def display(name, age, sex):
      print "Name: ", name
      print "Age: ", age
      print "Sex: ", sex

    display(sys.argv[1],sys.argv[2],sys.argv[3])

sys.argv返回命令行参数的列表,其名称为sys.argv [0](在本例中为./test.py)。当然,您应该进行某种参数检查以确保有足够的参数等。另外,请确保正确解析命令。例如,如果age应该是一个整数,则需要执行age = int(sys.argv [2]),因为sys.argv是一个字符串列表,这在大多数语言中是标准的。

答案 1 :(得分:1)

该错误消息表示您正在从 bash shell调用您的函数:

dsm@winter:~/coding$ display("Lary", 43, "M")
bash: syntax error near unexpected token `"Lary",'

您需要从 Python 控制台调用它:

dsm@winter:~/coding$ python -i display.py
>>> display("Larry", 43, "M")
Name:  Larry
Age:  43
Sex:  M

您无法以您尝试的方式从bash控制台中调用Python函数。

答案 2 :(得分:0)

您不执行调用函数display("Lary", 43, "M")

的脚本

您使用bash或python my_script.py

中的./my_script.py

您收到bash错误 <{1}}错误,要使python脚本可执行,只需要python

chmod +x my_script.py

~$ display("Lary", 43, "M") bash: syntax error near unexpected token `"Lary",'

my_script.py

答案 3 :(得分:0)

如果要将参数传递给python程序,最简单的方法是使用sys.argv

my_program.py:

#!/usr/bin/env python
import sys

print "Arguments passed:"
print sys.argv

然后运行您的程序,如:

./my_program.py this is "A test" 1 2 3