get_categories(number){
return this.http.post( url, body, {headers: headers, withCredentials:true})
.map(t=> {
this.total = t.json();
return total;
}).share();
);
}
затем
this.get_category(1).subscribe(t=> {
this.callfunc();
});
Да, Python буферизует ваш вывод. Вам лучше отслеживать размер самостоятельно, примерно так:
size = 0
for line in f1:
if str(line) == '</Service>\n':
break
else:
f2.write(line)
size += len(line)
print('size = ' + str(size))
(Это может быть не на 100% точным, например, в Windows каждая строка получит байт из-за \ r \ n
разделитель строк, но его должно хватить для простого разбиения на части.)
Самостоятельное отслеживание размера подойдет для вашего случая. Другой способ - очистить файловые буферы непосредственно перед проверкой размера:
f2.write(line)
f2.flush() # <-- buffers are written to disk
size = os.path.getsize('split.xml')
Слишком частое выполнение этого, конечно, замедлит ввод-вывод файлов.
Вы пытались заменить os.path.getsize на os.tell, например:
f2.write(line)
size = f2.tell()