From 6ebd1abde9f8a806116ca64fbea4b676d15afe01 Mon Sep 17 00:00:00 2001 From: SaisakthiM Date: Thu, 30 Oct 2025 19:06:04 +0530 Subject: [PATCH] Refactored BetterCSVStorage for improved structure and added list append support --- Better_CSV_Storage/better_csv_storage.py | 47 +++++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/Better_CSV_Storage/better_csv_storage.py b/Better_CSV_Storage/better_csv_storage.py index 01af0265..bfec8261 100644 --- a/Better_CSV_Storage/better_csv_storage.py +++ b/Better_CSV_Storage/better_csv_storage.py @@ -13,14 +13,16 @@ def load(self): self.valid_headers = next(csv_reader) def write_dict_csv(self, data_rows): - if data_rows: + if type(data_rows) == dict and data_rows: field_names = list(data_rows[0].keys()) - with open(self.csv_f_path,'w') as csv_wf: + with open(self.csv_f_path,'w',newline='') as csv_wf: csv_writer = csv.DictWriter(csv_wf, fieldnames=field_names) csv_writer.writeheader() for row in data_rows: csv_writer.writerow(row) print('[+] Data Written Successfully ...') + elif type(data_rows) != dict: + print('[-] Error : Data Type is Incorrect ...') else: print('[-] Error : Data Rows Could not be empty ...') @@ -76,6 +78,47 @@ def update_data(self, update_index, col_name, value): row[col_name] = value updated_rows.append(row) self.write_dict_csv(updated_rows) + + def append_dict_csv(self, data_rows): + if type(data_rows) == dict and data_rows: + field_names = list(data_rows[0].keys()) + with open(self.csv_f_path,'a',newline='') as csv_af: + csv_writer = csv.DictWriter(csv_af, fieldnames=field_names) + csv_writer.writeheader() + for row in data_rows: + csv_writer.writerow(row) + print('[+] Data Appended Successfully ...') + elif type(data_rows) != dict: + print('[-] Error : Data Type is Incorrect ...') + else: + print('[-] Error : Data Rows Could not be empty ...') + + def write_list_csv(self, data_rows): + if type(data_rows) == list and data_rows: + with open(self.csv_f_path,'w',newline='') as csv_wf: + csv_writer = csv.writer(csv_wf) + if len(data_rows) == 1: + csv_writer.writerow(data_rows) + else: + csv_writer.writerows(data_rows) + elif type(data_rows) != list: + print('[-] Error : Data Type is Incorrect ...') + else: + print('[-] Error : Data Rows Could not be empty ...') + + def append_list_csv(self, data_rows): + if type(data_rows) == list and data_rows: + with open(self.csv_f_path,'a',newline='') as csv_af: + csv_writer = csv.writer(csv_af) + if len(data_rows) == 1: + csv_writer.writerow(data_rows) + else: + csv_writer.writerows(data_rows) + elif type(data_rows) != list: + print('[-] Error : Data Type is Incorrect ...') + else: + print('[-] Error : Data Rows Could not be empty ...') + if __name__ == '__main__':