Source code for pyEpiabm.output._csv_writer
#
# Write data in a list to a csv file
#
import csv
import typing
import os
from pyEpiabm.output.abstract_reporter import AbstractReporter
[docs]
class _CsvWriter(AbstractReporter):
[docs]
def __init__(self, folder: str, filename: str, fieldnames: typing.List,
clear_folder: bool = False):
"""Initialises a file to store output in, and which categories
to record.
Parameters
----------
folder : str
Output folder path
filename : str
Output file name
fieldnames : typing.List
List of categories to be saved
clear_folder : bool
Whether to empty the folder before saving results
"""
super().__init__(folder, clear_folder)
self.f = open(os.path.join(folder, filename), 'w')
self.writer = csv.writer(
self.f, delimiter=',')
self.writer.writerow(fieldnames)
[docs]
def __del__(self):
"""Closes the file when the simulation is finished.
Required for file data to be further used.
"""
if self.f:
self.f.close()
[docs]
def write(self, row: typing.List):
"""Writes data to file.
Parameters
----------
row : typing.List
List of data to be saved
"""
self.writer.writerow(row)