python使用writerrow和time.sleep无法写入csv文件解决方法

  昨天练手了一个小爬虫项目,准备监测一段时间某个数据的变化情况,然后把数量和时间以csv形式写入文件,为了防止长时间的请求导致被封禁,所以就加了个time.sleep来间歇性的爬数据,然后就出现了不能向csv文件写入数据的情况,之前的代码如下:
csvFile =open('test.csv', 'w+',)
tokenname='.......'
writer = csv.writer(csvFile)
 
while 1:
        url = '.......'
        Form_data1 = {'token': tokenname}
        response = requests.post(url, data=Form_data1)
        content0 = json.loads(response.text)
        number = content0['data']['total']
        print(number)
        writer.writerow((number,time.time()))
        time.sleep(5)
 最后经过一番折腾后才知道原来是由于缓冲区没能及时刷新导致的问题,所以在time.sleep(5)前面加个csvfile.flush()即可:
csvFile =open('test.csv', 'w+',)
tokenname='.......'
writer = csv.writer(csvFile)
 
while 1:
        url = '.......'
        Form_data1 = {'token': tokenname}
        response = requests.post(url, data=Form_data1)
        content0 = json.loads(response.text)
        number = content0['data']['total']
        print(number)
        writer.writerow((number,time.time()))
        csvFile.flush()
        time.sleep(5)
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值