【问题标题】:How to write to a csv file in a while Loop python如何在while循环python中写入csv文件
【发布时间】:2020-10-05 05:15:15
【问题描述】:

我相信我已经正确设置了所有内容。但是,我的 csv 文件总是空白。

import csv
import datetime, time
with open("hello.csv",'w') as file1:
    wr=csv.writer(file1)
    while True:
        myDate = datetime.datetime.now()
        wr.writerow([myDate])
        time.sleep(5)

【问题讨论】:

  • 这永远不会结束
  • 对我来说很好,你确定你运行了程序,并在检查 csv 文件之前关闭了它吗?如果它仍然是 lank,你可以评论你正在使用的 python 版本吗?
  • @AmitBerger 你必须手动停下来吗?这将无限运行。
  • @TrentonMcKinney 我运行了几秒钟,然后程序就存在了(Ctrl + C)。我假设他将来会添加出口,只是想检查 csv 编写器
  • 但是,我的 csv 文件总是空白。 OP 没有。正在停止执行,因此文件保持打开状态,没有内容。

标签: python-3.x csv datetime write


【解决方案1】:

您的循环永远不会结束,您将永远无法看到对文件所做的更改。

如果您希望实时更新 CSV 文件,解决问题的方法是像您一样每五秒打印一次时间,然后将标准输出重定向到文件。

你的可能看起来像:

import sys
import datetime, time
while True:
    sys.stdout.flush()
    print(datetime.datetime.now())
    time.sleep(5)

在 GNU/Linux 终端中运行它

$ nohup python my_program.py > output.csv &
$ tail -f output.csv

您应该能够实时看到正在写入的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多