我正在使用以下要求在python中执行一个项目: 我有一个变量:
some_variable = "os.getcwd()/local/bin"
现在有一个python语句" os.getcwd()"在变量中。我必须识别它,执行它并替换变量中的值。
注意:字符串中可能出现任何python语句。我必须识别它,将它分开并执行并用其值替换原始变量。
在执行后的变量中,如果当前工作目录是
/home/xyz
那么变量应该包含
/home/xyz/local/bin
与os.getcwd()
类似,任何python语句都可以发生。
如何识别字符串中的python语句?
答案 0 :(得分:2)
正如评论中所提到的,这通常非常困难(例如,因为您无法确定标识符是文本的一部分还是python名称)。
因此,我建议稍微改变你的输入(假设在你的设置中这是可能的):Python模板引擎通常使用某种转义序列来表示python语句的开头和结尾。对于mako,例如,您将使用字符串some_variable = "${os.getcwd()}/local/bin"
,这使得替换变得容易。此外,采用这种语法意味着你可以立即使用mako而不必自己实现任何东西。
当然有很多替代mako,它只是我想到的第一个。