Удалить из строки питона - PullRequest
2 голосов
/ 19 ноября 2009

Когда вы запускаете что-то через popen в Python, результаты приходят из буфера с десятичным значением CR-LF возврата каретки (13) в конце каждой строки. Как удалить это из строки Python?

Ответы [ 6 ]

5 голосов
/ 19 ноября 2009

Вы можете просто сделать

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

для замены всех вхождений CRNL только на NL, что, как вам кажется, и нужно.

2 голосов
/ 19 ноября 2009

Если они находятся в конце строки (строк), я бы предложил использовать:

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

Вы также можете использовать rstrip () без параметров, что также удалит пробелы.

2 голосов
/ 19 ноября 2009
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.replace("\r\n", "\n")
0 голосов
/ 12 апреля 2017

replace ('\ r \ n', '\ n') должно работать, но иногда это просто не работает. Как странно. Вместо этого вы можете использовать это:

lines = buffer.split('\r')
cleanbuffer = ''
for line in lines: cleanbuffer = cleanbuffer + line
0 голосов
/ 19 ноября 2009

Вы можете сделать s = s.replace('\r', '') тоже.

0 голосов
/ 19 ноября 2009

На самом деле, вы можете просто сделать следующее:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...