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() 写入文件的问题的主要内容,如果未能解决你的问题,请参考以下文章