3

Python で何かを実行するpopenと、各行の末尾にキャリッジ リターン (13) の CR-LF 10 進値を含むバッファーから結果が返されます。これを Python 文字列からどのように削除しますか?

4

6 に答える 6

6

あなたは簡単に行うことができます

s = s.replace('\r\n', '\n')

CRNL のすべての出現箇所を NL だけに置き換えるには、これが必要なようです。

于 2009-11-18T22:31:35.853 に答える
2
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.replace("\r\n", "\n")
于 2009-11-18T22:31:55.417 に答える
2

それらが文字列の最後にある場合は、次を使用することをお勧めします。

buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.rstrip("\r\n")

空白も削除するパラメーターなしで rstrip() を使用することもできます。

于 2009-11-18T22:41:36.317 に答える
1

replace('\r\n','\n') は機能するはずですが、機能しない場合もあります。不思議ですね。代わりにこれを使用できます:

lines = buffer.split('\r')
cleanbuffer = ''
for line in lines: cleanbuffer = cleanbuffer + line
于 2017-04-12T12:30:05.840 に答える
0

実際には、次のことを簡単に行うことができます。

s = s.strip()

これにより、文字列の先頭または末尾にあるCRやLFなどの余分な空白が削除されます。

s = s.rstrip()

同じことをしますが、文字列の末尾のみです。

あれは:

s = '  Now is the time for all good...  \t\n\r   "
s = s.strip()

sには、「今がすべての善のための時間です...」が含まれています。

s = s.rstrip()

sは今含まれています'今はすべての善のための時間です...'

詳細については、 http://docs.python.org/library/stdtypes.htmlを参照してください。

于 2009-11-19T05:17:32.453 に答える
0

あなたもできs = s.replace('\r', '')ます。

于 2009-11-19T05:27:23.363 に答える