1

我在 python 中做一个项目,具有以下要求:我有一个变量,如:

some_variable = "os.getcwd()/local/bin"

现在变量中有一个python语句“os.getcwd()”。我必须识别它,执行它并替换变量中的值。

注意:任何 python 语句都可以出现在字符串中。我必须识别它,分离它并执行并用它的值替换原始变量。

如果当前工作目录是,则在执行后的变量中

/home/xyz

那么变量应该包含

/home/xyz/local/bin

就像os.getcwd(),任何 python 语句都可以发生。如何识别字符串中的python语句?

4

1 回答 1

2

正如评论中提到的,这通常非常困难(例如,因为您无法确定标识符是文本的一部分还是 python 名称的一部分)。

因此,我建议稍微更改您的输入(假设这在您的设置中是可能的):Python 模板引擎通常使用某种转义序列来确定 python 语句的开始和结束。例如,对于mako,您将使用 string some_variable = "${os.getcwd()}/local/bin",这使得替换变得容易。此外,采用这种语法意味着您可以立即使用 mako,而不必自己实现任何东西。

当然,mako 有很多替代品,它只是我想到的第一个。

于 2013-02-22T11:22:35.843 回答