我使用 zsh (5.8) 从 Mac 上的终端调用 Python (3.8) 脚本,导致标题中出现错误消息。我找到了解决此问题的方法(尽管并不优雅),但我想了解出了什么问题。
我的Python文件test.py:
import argparse
from ast import literal_eval
parser = argparse.ArgumentParser(description="test")
parser.add_argument("--test", default="", type=str, help="test")
args = parser.parse_args()
print(literal_eval(args.test))
Run Code Online (Sandbox Code Playgroud)
使用命令行调用此脚本会python test.py --test (0.4,0.3)导致此错误消息zsh: unknown file attribute: 0
这意味着什么?
关于 的解释literal_eval:
literal_eval接受一个字符串 like"(0.3,0.4)"并将其计算为元组 st
a = literal_eval("(0.3,0.4)")
type(a)
<class 'tuple'>
Run Code Online (Sandbox Code Playgroud)
最好的解决方法是将字符串放在引号中,这样您就可以这样称呼它:
python test.py --test '(0.4,0.3)'
Run Code Online (Sandbox Code Playgroud)
错误的原因是zsh尝试使用通配魔法来扩展(0.4,0.3)为文件名,但是当然,由于您不打算使用它,所以语法不太正确,因此出现错误。只需使用引号'或"字符串
| 归档时间: |
|
| 查看次数: |
4961 次 |
| 最近记录: |