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の場合、 stringsome_variable = "${os.getcwd()}/local/bin"を使用すると、置換が簡単になります。さらに、この構文を採用することは、mako をすぐに使用でき、自分で何も実装する必要がないことを意味します。

もちろん、mako の代わりになるものはたくさんあります。

于 2013-02-22T11:22:35.843 に答える