#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 os
class FileHandler:
def __init__(self, path):
self._path = path
self.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 = columns
row_msg = ''
for item in columns:
row_msg += '"{}",'.format(item)
row_msg = row_msg.strip(',')
self.write(row_msg)