Является ли log_fp текстовым файлом?
Если это так, последним значением в строках будет все после последнего символа новой строки. Ваш файл, вероятно, заканчивается новой строкой или новой строкой и пробелами.
В первом случае последнее значение строки будет пустой строкой.
В последнем случае последним значением строки будет пробел.
Чтобы избежать этого, вы можете добавить новое предложение в оператор if, чтобы проверить, что урезанная строка не пуста, например.
val = log_fp.getvalue()
lines = val.split('\n')
newval = ''
for line in lines:
if ( len(line.strip()) > 0):
if (not line.startswith('[output]')):
newval = line
print 'test1'+newval
print 'test2' +newval
(я не пытался запустить это, но это должно дать вам идею)