当前位置: 代码迷 >> 综合 >> python(30): flush()的使用,实时写文件,实时写csv实时查看
  详细解决方案

python(30): flush()的使用,实时写文件,实时写csv实时查看

热度:26   发布时间:2023-11-21 17:36:47.0
#demo
foo = open(xxx_file, 'a+', encoding='utf-8')
for i in range(20):foo.write('true\n')foo.flush()time.sleep(1)
foo.close()

flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

# -*- coding: utf-8 -*-
import osclass FileHandler:def __init__(self, path):self._path = pathself.file = open(path, 'w+', encoding='utf-8')def write(self, line):"""msg: '"abc,vvd","123,cv"'(csv文件写,)"""self.file.write(line + '\n')self.file.flush()def close(self):self.file.close()

class RealTimeCsv(FileHandler):"""csv文件实时写入"""def __init__(self,config):super().__init__(config['filepath'])self.columns = []def write_row(self,row_data: dict):"""row_data: dict"""row_msg = ''for col in self.columns:row_msg += '"{}",'.format(row_data.get(col,''))row_msg = row_msg.strip(',')self.write(row_msg)def set_columns(self,columns: list):"""设置csv文件头"""self.columns = columnsrow_msg = ''for item in columns:row_msg += '"{}",'.format(item)row_msg = row_msg.strip(',')self.write(row_msg)

  相关解决方案