-1

すでにエスケープされているテキストを含むWebベースのドキュメントから単純なopen-readコマンドを実行すると、Pythonは\エスケープに追加し\ます。

href=\"http:\/\/
into
href=\\"http:\\/\\/

この動作を無効にするにはどうすればよいですか?

アップデート

たとえば、複製することができます

a= 'href=\"http:\/\/'

または私の場合

私は単にopen()を実行してから、mechanizeで読み取りを行いました。

では、文字列がすでにエスケープされていることをPythonに伝えるにはどうすればよいですか?

4

3 に答える 3

4

Pythonは何も変更していません。以下を見てください:

>>> a= 'href=\"http:\/\/'
>>> a
'href="http:\\/\\/' # the str() method is called
>>> repr(a)
'\'href="http:\\\\/\\\\/\'' # repr() is meant to be how the object can be "read" back, or provide detailed information
>>> str(a)
'href="http:\\/\\/' # see first example
>>> print a
href="http:\/\/ # any conversion etc... is not performed, ie, you get your original string printed
于 2012-06-20T12:50:37.423 に答える
1

Pythonは表示の目的でこれを行うだけであり、インタプリタでだまされている場合はそれを行います。

In other words, it only does so if using repr() explicitly or implicitly.

It shows them, but it doesn't use them. They are not really there.

于 2012-06-20T12:57:16.760 に答える
0

スラッシュをエスケープする必要はありません。したがって、入力文字列に問題があります。Python出力の二重円記号は、インタープリターが単一の円記号を表す方法と同じです。印刷すると、「\\」が1つとして表示されます。

于 2012-06-20T12:54:34.103 に答える