Я пытаюсь выполнить следующую команду системы с помощью Python:Противоречивые стандартный вывод на Python subprocess.Popen
cat txt_file | egrep "keyword1|keyword2|keyword3"
используя ниже питон кода:
p1 = subprocess.Popen (['cat', txt_file], stdout=subprocess.PIPE)
p2 = subprocess.Popen (['egrep', "\"" + keyword_list + "\""], stdin=p1.stdout, stdout=subprocess.PIPE)
#where keyword_list is : "keyword1|keyword2|keyword3"
p1.stdout.close() #for p2 to exit if SIGPIPE from p1
out = p2.communicate()[0]
Там находятся несколько строк для вывода задать расширенные, Но используя вышеприведенный скрипт, я могу получить только строку, соответствующую среднему ключевому слову2 в переменной out
.
В чем может быть проблема?
Обновление: Платформа: Windows txt_file довольно большой ~ 8 MB