From f222ff423b08262cdc3f0abde9f09bce69559303 Mon Sep 17 00:00:00 2001 From: aiyingfeng Date: Fri, 4 Aug 2023 14:10:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=E7=A0=81=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 手机号码处理/docs/test.txt | 0 手机号码处理/file_test/test.txt | 0 手机号码处理/main.py | 0 手机号码处理/program/__init__.py | 0 手机号码处理/program/read_phone.py | 88 ++++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 手机号码处理/docs/test.txt create mode 100644 手机号码处理/file_test/test.txt create mode 100644 手机号码处理/main.py create mode 100644 手机号码处理/program/__init__.py create mode 100644 手机号码处理/program/read_phone.py diff --git a/手机号码处理/docs/test.txt b/手机号码处理/docs/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/手机号码处理/file_test/test.txt b/手机号码处理/file_test/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/手机号码处理/main.py b/手机号码处理/main.py new file mode 100644 index 0000000..e69de29 diff --git a/手机号码处理/program/__init__.py b/手机号码处理/program/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/手机号码处理/program/read_phone.py b/手机号码处理/program/read_phone.py new file mode 100644 index 0000000..6604b24 --- /dev/null +++ b/手机号码处理/program/read_phone.py @@ -0,0 +1,88 @@ +from datetime import datetime +from phone import Phone +import pandas as pd +import os + + +class ReadPhone(object): + + def __init__(self): + self.xlsx_keys_list = [] + + @staticmethod + def read_xlsx(file_path): + print(file_path) + df = pd.read_excel(file_path, header=None) + return df.values.tolist() + + @staticmethod + def export_excel(export, excel_path): + """ + 将字典列表转换为DataFrame + :param export: + :return: + """ + pf = pd.DataFrame(list(export)) + current_time = datetime.now() + formatted_time = current_time.strftime('%Y-%m-%d-%H-%M-%S') + print(f'{excel_path}/{formatted_time}.xlsx') + file_path = pd.ExcelWriter(f'{excel_path}/{formatted_time}.xlsx') + # 替换空单元格 + pf.fillna(' ', inplace=True) + # 输出 + pf = pf.sort_values(by='手机号码') + pf.to_excel(file_path, index=False) + # 保存表格 + file_path.close() + + @staticmethod + def get_phone_text(phone_str): + phone_str = phone_str.replace(' ', '').replace('。', '').strip() + p = Phone() + try: + phone_text = p.find(int(phone_str)) + if phone_text and (phone_text is not None): + xlsx_keys = { + "手机号码": int(phone_str), + "省": phone_text.get('province') or '', + "城市": phone_text.get('city') or '', + "邮编": phone_text.get('zip_code') or '', + "区域区号": phone_text.get('area_code') or '', + "运营商": phone_text.get('phone_type') or '' + } + else: + xlsx_keys = { + "手机号码": int(phone_str), + "省": '', + "城市": '', + "邮编": '', + "区域区号": '', + "运营商": '' + } + return xlsx_keys + except Exception as e: + print(phone_str) + print(e) + pass + + def run(self, folder_path, excel_path): + # 递归地查找所有子文件夹中的 xlsx 文件 + xlsx_files = [] + for root, dirs, files in os.walk(folder_path): + for file in files: + if file.endswith(".xlsx"): + xlsx_files.append(os.path.join(root, file)) + + # 打印所有找到的 xlsx 文件路径 + for file in xlsx_files: + phone_list = self.read_xlsx(file) + for phone_str in phone_list: + xlsx_keys = self.get_phone_text(str(phone_str[0])) + if xlsx_keys: + self.xlsx_keys_list.append(xlsx_keys) + self.export_excel(self.xlsx_keys_list, excel_path) + + +if __name__ == '__main__': + read_phone = ReadPhone() + read_phone.run('./file', './docs')