0

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

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. “插入记录”和大量点同时显示
  3. 几秒钟内什么也没有发生
  4. 再次同时显示多个点
  5. 3 - 4 重复,直到插入所有文档

为什么打印命令“缓存”然后分批完成,我该如何解决?

4

1 回答 1

0

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

于 2015-05-06T17:17:27.863 回答