2

\x00\t、スペースなどのエスケープ シーケンスを含む文字列を Python スクリプトに渡したいと考えています。
ただし、文字列を次のように渡すと:

some string\x00 more \tstring

python は自分の文字列を生の文字列として扱い、その文字列をスクリプト内から出力すると、文字列が文字どおりに出力\され、エスケープ シーケンスとして扱われません。
つまり、上記の文字列を正確に出力します。

更新:(再び)
私はpython 2.7.5を使用して再現し、スクリプトを作成し、それを呼び出しますmyscript.py:

import sys
print(sys.argv[1])

それを保存して、Windowsコマンドプロンプトから次のように呼び出します。

c:\Python27\python.exe myscript.py "abcd \x00 abcd"

私が得る結果は次のとおりです。

> 'abcd \x00 abcd'

PS実際のスクリプトでは、オプションパーサーを使用していますが、どちらも同じ効果があります。エスケープ シーケンスを処理するためにオプション パーサーに設定できるパラメーターがあるのではないでしょうか。

4

3 に答える 3

6

myscript.py には以下が含まれます。

import sys
print(sys.argv[1].decode('string-escape'))

結果 abcd abcd

于 2013-07-03T03:29:01.940 に答える