Я пытаюсь разобрать вывод SQL-запроса в Python (не удается установить cx_Oracle из-за ограничений org, следовательно, нужно перейти подпроцесс путь.Python split (' n') разбивает строку на полпути, а не после конца строки
Вот мой вывод команды подпроцесса
output1 = sqlplus.communicate()[0].split('\n')
['', '05/02/2016 19:42:40,ABC,O\t\t\t\t ,ACTIVE', '\t 49', '', '05/02/2016 19:42:40,ABC,O\t\t\t ,INACTIVE', '\t 11', '']
Так что дата имеет смысл, я пытаюсь удалить все пробелы и вкладки, но есть один столбец, который дает мне головную боль .
Когда я пытаюсь удалить лишний материал из более раннего выпуска с подкопкой e, последний столбец попадает в следующую строку вместо того, чтобы оставаться в той же строке. Я знаю, что это, вероятно, из-за ведущей \ t (tab) в последнем столбце, но я не могу ее удалить. Я пытался с часами использовать полосы, lstrip, rstrip, regexes, но безрезультатно.
for line in output1:
if(line != ''):
print ",".join([str(x.strip()) for x in line.split(',')])
Ниже мой окончательный вывод, но с последнего столбца в следующей строке
05/02/2016 19:53:52,ABC,O,ACTIVE
49
05/02/2016 19:53:52,ABC,O,INACTIVE
11
Нужна помощь в поиске, что я не хватает. Заранее спасибо за все ваши входы :)
--Jim
Ваш 'output1', кажется, показывает, что« последний столбец », по сути, * уже * в новой строке на выходе' communication() '. Посмотрите, как вторая строка заканчивается сразу после 'ACTIVE', а затем' '\ t 49'' является третьей строкой. Вы уверены, что вывод внешней команды выглядит так, как вы думаете? – user2357112
Возможно, внешняя команда вставляет разрывы строк, чтобы попытаться сделать свою собственную линию. – user2357112
Ваш код игнорирует пустые строки и удаляет пробелы вокруг запятых в значениях, разделенных запятыми. Но он не объединяет отдельные элементы списка в одну строку. – Barmar