Python 3.4 使用 time.sleep() 写入文件的问题

Posted

技术标签:

【中文标题】Python 3.4 使用 time.sleep() 写入文件的问题【英文标题】:Python 3.4 Issue with writing to a file with time.sleep() 【发布时间】:2014-06-20 00:25:12 【问题描述】:

我正在使用 Python 3.4。如果我在最后放置一个睡眠计时器,它不会将数据写入 Test.dat 文件,我试图弄清楚为什么 writerow() 不起作用。代码是这样的

import csv, time

fileName = "Test.dat"
freq = 5; 

with open(fileName, 'a') as fp:
    a = csv.writer(fp, delimiter=',')
    for i in range(1, 10):
        data = [2014, 5, 3, 5, 26, 53, 'Price', '100.00']
        a.writerow(data)
        time.sleep(freq)

但是如果我删除计时器,它会将数据写入 Test.dat 文件中

import csv, time

fileName = "Test.dat"
freq = 5; 

with open(fileName, 'a') as fp:
    a = csv.writer(fp, delimiter=',')
    for i in range(1, 10):
        data = [2014, 5, 3, 5, 26, 53, 'Price', '100.00']
        a.writerow(data)

回答:

2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00
2014,5,3,5,26,53,Price,100.00

【问题讨论】:

好吧,它会在每次写入之间等待 5 秒。你必须要有耐心 是的,它也对我有用;这只是 veeery sloooooow ;-) 好的。该死的,我需要对这个大声笑更有耐心。周六早上赶紧出门!谢谢你们。 【参考方案1】:

您正在等待 5 秒,程序需要很长时间才能结束写入文件:

等待一秒钟:

freq = 1

【讨论】:

【参考方案2】:

你可以像fp.flush()一样运行这个句子。 sleep 函数将与您的其他函数运行相同的线程,因此 file.write() 函数没有机会将其缓存推送到您操作系统中的文件中。 因此,您应该自己调用flush()。

【讨论】:

以上是关于Python 3.4 使用 time.sleep() 写入文件的问题的主要内容,如果未能解决你的问题,请参考以下文章

python中from time import sleep是啥意思

Python - 准确的 time.sleep

Python time.sleep 杀死线程

Python time.sleep 与忙等待的准确性

python的time.sleep()有多准确?

Python time.sleep 需要更长的时间