Я пытаюсь проанализировать результаты sar в python, используя подпроцесс, каждый раз, когда я вызываю код python, который вызывает подпроцесс sar, он производит другое количество строк. Вот минимальная программа для воспроизведения этой проблемы:Вызов sar в Python производит странные результаты
import sys
import subprocess
fn = sys.argv[1]
p = subprocess.Popen(str('sar -r -f %s' % fn).split(' '), shell=True, stdout=subprocess.PIPE)
count = 0
while p.poll() is None:
output = p.stdout.readline()
count += 1
print "num lines = %d" % count
Вызова этой программы несколько раз, производит различное число строк каждый раз: как это
for i in {1..10}; do ./sarextractor.py /var/log/sysstat/sa02; done
Вызов сар непосредственно в командной строке производит постоянное число линий:
for i in {1..10}; do sar -r -f /var/log/sysstat/sa02 | wc -l; done
любая идея, как это может случиться?
Спасибо, что это работает !! –