Я хотел бы прочитать файл CSV со стандартного ввода и обработать каждую строку по мере ее поступления. Мой код вывода CSV записывает строки одну за другой, но мой читатель ждет завершения потока, прежде чем повторять строки. Это ограничение модуля csv
? Я делаю что-то неправильно?
Мой код для чтения:
import csv
import sys
import time
reader = csv.reader(sys.stdin)
for row in reader:
print "Read: (%s) %r" % (time.time(), row)
Мой код писателя:
import csv
import sys
import time
writer = csv.writer(sys.stdout)
for i in range(8):
writer.writerow(["R%d" % i, "$" * (i+1)])
sys.stdout.flush()
time.sleep(0.5)
Выход python test_writer.py | python test_reader.py
:
Read: (1309597426.3) ['R0', '$']
Read: (1309597426.3) ['R1', '$$']
Read: (1309597426.3) ['R2', '$$$']
Read: (1309597426.3) ['R3', '$$$$']
Read: (1309597426.3) ['R4', '$$$$$']
Read: (1309597426.3) ['R5', '$$$$$$']
Read: (1309597426.3) ['R6', '$$$$$$$']
Read: (1309597426.3) ['R7', '$$$$$$$$']
Как видите, все операторы печати выполняются одновременно, но я ожидаю, что между ними будет промежуток в 500 мс.
python test_writer.py
? - person Roland Illig   schedule 02.07.2011