2

Web API からフェッチしているテキストが少しありますが、Python を使用して二重の改行で段落を分割しようとすると混乱します。

以下は、興味深いテキストの最小のサンプルです。

>>> print my_string
e

N

2 つの改行のように見え、Python は同意します。

>>> print my_string.count('\n')
2

改行を別の区切り文字に置き換えようとしています。私は期待していeaaNます:

>>> print my_string.replace('\n', 'a')
aN

変。16 進数のテキストは次のとおりです。

87654321  0011 2233 4455 6677 8899 aabb ccdd eedff  0123456789abcdef
00000000: 650a 0a4e                                 e..N

私は16進数で何かを見るのは初めてですが0a、他の制御文字がなく、期待する場所に2つの文字が表示されます(CRLFの不安定さはありません)。

テキストまたは Python の解釈に欠けているものはありますか?

コントロールとして、Idle で同じ文字列を入力し、同じ関数を試しました。

my_string = """e

N"""
>>> my_string.count('\n')
2
>>> my_string.replace('\n', 'a')
'eaaN'

Web API は Tomcat の JMX インターフェイスです。API のクエリに使用しているパスは次のとおりです (URI エスケープされていることはわかっていますが、問題ありません)。

manager/jmxproxy?qry=Catalina:j2eeType=WebModule,name=//localhost/*,J2EEApplication=none,J2EEServer=none

ありがとうございました。

解決

それらは CRLF です:

>>> print repr(my_string)
'e\r\n\r\nN'

インタプリタから Emacs にテキストを「コピー&ペースト」して、16 進数の解析を行って自分をだましました。ファイルに書き込んでからEmacsで開くと、私のやり方の誤りがわかりました。

4

0 に答える 0