我有一个python项目,我基本上是在编写一种自定义语言,为此我需要一个函数,可以用不同的数据(例如随机数)替换用户输入的字符串(很难解释我要做什么c:)
例如,用户在命令行中键入:
j@dev-box$ file write hi.txt {RANDOM_INT[1, 20]}
函数的运行方式如下:
parseOutput = parseFunction(userInputString) # userInputString = "file write hi.txt {RANDOM_INT[1,20]}
然后parseOutput将等于file write hi.txt 14
,用随机数代替{random\u INT[x,x]}标记
我希望我把我要找的东西说清楚,因为这很难解释。你知道吗
这是你需要的吗?你知道吗
您可以尝试使用Python中的
str.find
功能。Documentation示例:
您可以使用内置库
random.py
中的random.randInt
生成randomInt
。Documentation好吧,我建议您使用Jinja2模板,而不是使用Python模板字符串(虽然功能强大但有限)。你知道吗
这个模板引擎是开发web应用程序的著名工具。你知道吗
要实现自定义语言,可以使用过滤器。举个例子:
首先导入所需的模块:
定义一个过滤器来计算一个随机数,如下所示:
注意:这里不使用值参数。
定义Jinja环境并添加自定义筛选器:
然后您可以这样使用它(您必须稍微更改用户输入以符合Jinja模板语法):
结果是:
Avantages:Jinja可以为您检查语法和缺少的格式。你知道吗
编辑:更多示例
您可以更改要使用的环境配置 单花括号而不是双花括号:
您可以使用内置函数和过滤器,而不是创建自定义过滤器。 例如:将
range()
函数与random
过滤器一起使用:最后,您可以使用自己的函数扩展全局上下文
相关问题 更多 >
编程相关推荐