pythonで文字列変数を宣言して、その中のすべてを自動的にエスケープする、またはリテラル文字値を持つようにする方法はありますか?
私はnot引用符をスラッシュでエスケープする方法を尋ねています、それは明らかです。私が求めているのは、すべてを文字列リテラルで作成するための汎用的な方法であり、非常に大きな文字列の場合はすべてを手動で処理してエスケープする必要はありません。誰もが解決策を知っていますか?ありがとう!
生の文字列リテラル:
>>> r'abc\dev\t'
'abc\\dev\\t'
非常に大きな文字列、特に複数行の文字列を扱う場合は、triple-quote構文に注意してください。
a = r"""This is a multiline string
with more than one line
in the source code."""
そのようなことはない。 Perlやシェルで「ヒアドキュメント」のようなものが欲しいようですが、Pythonにはありません。
生の文字列または複数行の文字列を使用することは、心配することが少ないことを意味します。生の文字列を使用する場合、端末「\」を回避する必要があり、文字列ソリューションでは、データに含まれている場合、「」、「」、「」または「」」を閉じることを心配する必要があります。
つまり、文字列を持つ方法はありません
' ''' """ " \
Python何らかの内部エスケープなしの文字列リテラルに適切に格納されます。
Pythonの文字列リテラルのドキュメントは次の場所にあります。
http://docs.python.org/tutorial/introduction.html#strings
そしてここ:
http://docs.python.org/reference/lexical_analysis.html#literals
最も簡単な例は、「r」プレフィックスを使用することです。
ss = r'Hello\nWorld'
print(ss)
Hello\nWorld
(Python code)内から直接文字列を入力する必要はないと仮定します)
andrew Dalkeが指摘した問題を回避するには、テキストファイルにリテラル文字列を入力してからこれを使用します。
input_ = '/directory_of_text_file/your_text_file.txt'
input_open = open(input_,'r+')
input_string = input_open.read()
print input_string
これは、たとえテキストファイルにあるとしても、テキストファイルにあるすべてのリテラルテキストを出力します。
' ''' """ “ \
楽しくも最適でもありませんが、特に文字のエスケープが必要なコードが3ページある場合に便利です。
stringが変数の場合、.reprメソッドを使用します。
>>> s = '\tgherkin\n'
>>> s
'\tgherkin\n'
>>> print(s)
gherkin
>>> print(s.__repr__())
'\tgherkin\n'