当我尝试使用参数执行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),我总是得到同样的错误。
有什么问题?
答案 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