mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-12 03:27:07 +08:00
89 lines
2.8 KiB
Python
89 lines
2.8 KiB
Python
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')
|