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で開くと、私のやり方の誤りがわかりました。