6

次のような Python3.x の文字列をエスケープすることに興味があります。

SOME_MACRO(a, b)

の中へ...

SOME_MACRO\(a,\ b\)

...定義としてプログラム(この場合はgccではない)に渡すことができるように、

例えば、

some_program -DSOME_MACRO\(a,\ b\)="some expression"

私はこの機能を期待shlexしていましたが、これを行う方法が見つからず、すでに多くの同様の質問をチェックしました。

これを行うための単純な関数を書くことは気にしませんが、これは Python に含まれる種類のもののようです。

注: 引数を渡すプログラムは受け入れません:

-D"SOME_MACRO(a, b)"="some expression"

...最初の文字が識別子であると想定しています。

4

2 に答える 2

3

正しく行うということは、これについて心配する必要がないことを意味します。シェルは、スペースと引用符と括弧を気にする必要があります。Python はそうではありません。

proc = subprocess.Popen([..., "-DSOME_MACRO(a, b)=some expression", ...], ...)
于 2013-08-08T01:35:08.507 に答える