Tôi muốn đọc tệp CSV từ đầu vào tiêu chuẩn và xử lý từng hàng khi nó đến. Mã xuất CSV của tôi viết từng hàng một, nhưng trình đọc của tôi chờ luồng được chấm dứt trước khi lặp lại các hàng. Đây có phải là giới hạn của mô-đun csv
không? Tôi có làm điều gì sai?Cách đọc tệp CSV từ luồng và xử lý từng dòng như được viết?
đang đọc của tôi:
import csv
import sys
import time
reader = csv.reader(sys.stdin)
for row in reader:
print "Read: (%s) %r" % (time.time(), row)
đang nhà văn của tôi:
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)
Sản lượng 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', '$$$$$$$$']
Như bạn có thể thấy tất cả các báo cáo in được thực hiện cùng một lúc , nhưng tôi mong đợi có khoảng cách 500ms.
Điều gì sẽ xảy ra nếu bạn chỉ chạy 'python test_writer.py'? –