Python: как искать многострочную строку для конкретного контента - PullRequest
2 голосов
/ 05 августа 2011

Я создал строку из

connectString = 'D:\Database\10.2.0\BIN\sqlplus.exe -L sys/PASSWORD'
output = str(call(connectstring))

это результат печати

stuff stuff stuff
  stuff even more stuff
ORA-28009
stuff stuff
  stuff and stuff

Я делаю

output.find('ORA-28009')

но он не находит последовательность строк. Единственная причина, по которой я могу думать, состоит в том, что строка многострочная. Как мне справиться с этим?

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

попробуйте нормализовать строку, удалив специальный символ.Я использую функцию, подобную этой:

def trim (str):
    str = str.replace(' ', '')
    str = str.replace('\s', '')
    str = str.replace('\t', '')
    str = str.replace('\r', '')
    str = str.replace('\n', '')
    return str

Может быть, вы можете адаптировать ее к вашему случаю.лучший, Ste

0 голосов
/ 08 августа 2011

Это то, что я сделал, чтобы решить это.Переменная sPath необходима, потому что у меня есть два отдельных экземпляра Oracle на одном сервере.Чтобы правильно проверить пароль учетной записи sys, мне нужно было запустить sqlplus, содержащийся в определенном каталоге, с правильным паролем для этого экземпляра.

0 голосов
/ 05 августа 2011

Попробуйте заменить

output = str(call(connectstring))

на

output = str(check_output(connectstring))

, который возвращает байты из выходных данных команды.

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