pexpect возвращает стиль окон в конец строки - PullRequest
1 голос
/ 30 июля 2011

Если кто-то использовал pexpect в linux, вы заметили, что pexpect возвращает конец строки в стиле окна при использовании его функции readline()?Вы знаете способ избавиться от этого?

1 Ответ

1 голос
/ 20 марта 2012

Это не только readline (), которая возвращает \ r \ n, весь захваченный текст, возвращаемый pexpect, содержит \ r \ n окончания строки.

Документация имеет следующее объяснение:

readline (self, size = -1)

Это читает и возвращает одну целую строку.Конечный символ новой строки сохраняется в строке, но может отсутствовать, когда файл заканчивается неполной строкой.Примечание. Эта функция readline () ищет пару \ r \ n даже в UNIX, потому что это то, что возвращает псевдотетическое устройство.Таким образом, вопреки тому, что вы можете ожидать, вы получите новую строку как \ r \ n.Пустая строка возвращается, когда EOF ударил сразу.В настоящее время аргумент size в основном игнорируется, поэтому это поведение не является стандартным для файловоподобного объекта.Если размер равен 0, тогда возвращается пустая строка.

Вы можете сделать что-то подобное, чтобы преобразовать \ r \ n в \ n

line = child.readline()
line.replace('\r\n', '\n')
...