我的函数的名称是getTile.py。我正在尝试在python中使用argparse函数来从命令行解析内容。但是,该程序无法通过脚本的第二行。它一直在命令行中返回:
./getTile.py: line 19: syntax error near unexpected token `('
./getTile.py: line 19: `parser = argparse.ArgumentParser()
我正在关注python.org上的argparse柔和教程。另外,这是我的程序。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("X-coordinate", help="Please put in the X-coordinate of your point.", type=float)
xCoordinate=float(parser.X-coordinate)
def aFunction(var1):
var1 = var1+5
print(a)
afunction(xCoordinate)
答案 0 :(得分:0)
这有效:
In [42]: import argparse
...: parser = argparse.ArgumentParser()
...: parser.add_argument("X_coordinate", help="Please put in the X-coordinate of your point.", type=float)
...: args = parser.parse_args('1.23'.split()) # simulate commandline
...: print(args)
...: xCoordinate=args.X_coordinate # type already converted it to float
...: def aFunction(var1):
...: var1 = var1+5
...: print(a)
...: aFunction(xCoordinate)
...:
...:
Namespace(X_coordinate=1.23)
3.141592653589793
对于X-coordinate
这样的目的,您必须使用getattr
,因为这不是有效的变量名。但是对于职位,您不需要使用花哨的dest
。一个简单的字符串也一样。 (对于可选项,可以使用“ --X坐标”之类的标记。)
我还删除了不必要的float
。
在测试过程中,我喜欢使用print(args)
来清楚地了解解析器在做什么。
无法从您的代码中复制语法错误。
答案 1 :(得分:0)
该文件当前正在作为Shell脚本执行,从而导致错误。
尝试:
python ./getTile.py
或将其添加到标题(getTile.py中的第一行):
#!/bin/env python
添加添加执行权限:
chmod u+x getTile.py
然后尝试:
./getTile.py