import json import pandas as pandas import definitions import params from pojo.SimInfoPojo import SimInfoPojo from pojo.contact_pojo import ContactPojo from utils.operator import check_operator class ExcelHelper: def __init__(self): self._df = pandas.Series() def write_to_exel(self, file_name, data_list: list): new_df = pandas.Series(data_list) self._df = pandas.concat([self._df, new_df]) self._df.to_excel(file_name) def generate_exel_from_txt(self): f = open("../phone_list.txt") lines = f.read() self.write_to_exel("phone_list.xlsx", lines.split(",")) ccid_file = open("../ccid_list.txt") ccids = ccid_file.read() self.write_to_exel("ccid_list.xlsx", ccids.split(",")) print(lines) def read_user_agent_list(self): # read the contact list from the exel file contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/mobile_user_agent_list.xlsx").to_json( orient='records') contact_dict_list = json.loads(contact_list_in_json) user_agents = [] for contact_dict in contact_dict_list: user_agent = contact_dict['user_agent'] user_agents.append(user_agent) return user_agents def read_sim_info(self) -> list: sim_info_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/sim_infos.xlsx").to_json(orient='records') sim_info_dict_list = json.loads(sim_info_list_in_json) sim_info_list = [] for contact_dict in sim_info_dict_list: position = contact_dict['position'] slot_position = int(int(position) / len(params.MODEM_POOL_PORTS)) + 1 sim_position = int(position) % len(params.MODEM_POOL_PORTS) ccid = contact_dict['ccid'] operator = check_operator(ccid).name siminfo = SimInfoPojo(phone=contact_dict['phone'], name=contact_dict['name'], ccid=ccid, passport=contact_dict['passport'], position=contact_dict['position'], slot_position=slot_position, sim_position=sim_position, operator=operator, email=contact_dict['email']) sim_info_list.append(siminfo) return sim_info_list def read_contacts(self, file_name="/contact_all.xlsx") -> list: contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + file_name).to_json(orient='records') contact_dict_list = json.loads(contact_list_in_json) contact_list = [] for contact_dict in contact_dict_list: name = contact_dict['name'].split(' ') first_name = name[0] last_name = name[-1] contact = ContactPojo(phone_number=contact_dict['phone'], last_name=last_name, first_name=first_name, ccid=contact_dict['ccid'], passport_number=contact_dict['passport'], position=contact_dict['position'], mail=contact_dict['email']) contact_list.append(contact) return contact_list if __name__ == '__main__': helper = ExcelHelper() # helper.generate_exel_from_txt() print(helper.read_sim_info())