Python, rethinkDB: 多次插入的进度未显示

Python, rethinkDB: progress of multiple inserts not displayed

我正在将 CSV 文件中的大约 10k 个文档插入 rethinkDB table;代码看起来像这样

print "inserting records",
with open('input.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:
        document = # do some stuff to create the document
        insert_record(document)
        print ".",

如您所见,每次插入后屏幕上都会打印一个点以显示操作进度。 不幸的是,我看到的是:

  1. 几秒钟内没有任何反应
  2. 同时显示"inserting records"和大量点
  3. 几秒钟内没有任何反应
  4. 再次同时显示多个点
  5. 3 - 4 次重复,直到插入所有文档

为什么打印命令 "cached" 然后批量完成,我该如何解决?

通常当打印到 stdout 时,输出将被缓冲,然后在它变得足够大时刷新。试试在打印语句后加sys.stdout.flush(),输出应该更流畅