def execute_processor(self): ''' parameters needed, file name, key (comma seperated list) ''' file_in = self.param_dict['file_in'] new_name = self.param_dict['count_name'] keys = self.param_dict['key'].split(",") full_path = os.path.join(self.entry.working_directory, file_in) sort_one_file(full_path, self.param_dict.get('key', "0"), self.entry.working_directory) rec_list = [] prev_rec = None with open(full_path) as csvfile: reader = csv.DictReader(csvfile) for row in reader: vals = [row[a] for a in keys] key = "_".join(vals) if prev_rec and prev_rec != key: self.write_recs(rec_list, new_name) rec_list = [] prev_rec = key elif not prev_rec: header = row.keys() header.append(new_name) self.setup_csv_temp_writer(self.get_temp_csv_name(), header, write_header=True) prev_rec = key rec_list.append(row) self.write_recs(rec_list, new_name) self.close_temp_csv() return 0
def execute_processor(self): ''' parameters needed, file name, key (comma seperated list) ''' file_in = self.param_dict['file_in'] new_name = self.param_dict['count_name'] keys = self.param_dict['key'].split(",") full_path = os.path.join(self.entry.working_directory,file_in) sort_one_file(full_path, self.param_dict.get('key',"0"), self.entry.working_directory) rec_list = [] prev_rec = None with open(full_path) as csvfile: reader = csv.DictReader(csvfile) for row in reader: vals = [row[a] for a in keys] key = "_".join(vals) if prev_rec and prev_rec != key: self.write_recs(rec_list,new_name) rec_list = [] prev_rec = key elif not prev_rec: header = row.keys() header.append(new_name) self.setup_csv_temp_writer(self.get_temp_csv_name(), header, write_header=True) prev_rec = key rec_list.append(row) self.write_recs(rec_list,new_name) self.close_temp_csv() return 0
def sort_files(self): for a_file in self.file_dict.keys(): name = self.file_dict[a_file]['name'] sort_one_file(name, self.file_dict[a_file]['key'], directory=self.entry.working_directory)