This repository has been archived on 2025-12-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
QWeatherReporter/SearchCity.py

82 lines
2.8 KiB
Python
Raw Normal View History

2021-11-11 21:21:48 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2021/10/9
# @File Name: SearchCity.py
import getpass
import time
import sys
import pandas as pd
import logging
from ruamel.yaml import YAML
from colorlog import ColoredFormatter
def read_excel(kw: str):
"""
读取城市列表并根据传入的参数进行搜索
:param kw: 进行匹配的关键字
:return: city_list
"""
index_count = 0
city_list = []
logger.info('文件读取中...')
df = pd.read_excel('./resource/China-City-List.xlsx')
pd.set_option('max_rows', None) # 读取xlsx文件不折叠
data_records = df.to_dict(orient='split')
for i in data_records['data']:
if kw in str(i):
print(
f'\033[32;32m[{time.strftime("%H:%M:%S", time.localtime())}] [INFO] {index_count} {i[2]}-{i[4]}-{i[6]}')
index_count += 1
city_list.append(i)
if not city_list:
return False
return city_list
if __name__ == '__main__':
logger = logging.getLogger("autotest")
logger.setLevel(logging.DEBUG)
fmt = "%(log_color)s[%(asctime)s] [%(log_color)s%(levelname)s] %(log_color)s%(message)s"
dateformat = '%H:%M:%S'
formatter = ColoredFormatter(fmt=fmt, datefmt=dateformat, reset=True, secondary_log_colors={}, style='%')
hd_1 = logging.StreamHandler()
hd_1.setFormatter(formatter)
logger.addHandler(hd_1)
yaml = YAML()
keyword = input(f'\033[32;32m[{time.strftime("%H:%M:%S", time.localtime())}] [INFO] 输入城市名进行搜索:')
if keyword:
result = read_excel(keyword)
if result:
try:
select_index = int(
input(f'\033[32;32m[{time.strftime("%H:%M:%S", time.localtime())}] [INFO] 请输入数据前的索引选择城市:'))
with open('./config.yml', 'r', encoding='utf-8') as of:
data = yaml.load(of)
data['request-settings']['location'] = result[select_index][0]
data['only-view-settings'][
'city-name'] = f'{result[select_index][2]}-{result[select_index][4]}-{result[select_index][6]} '
data['only-view-settings']['time'] = time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
data['only-view-settings']['user'] = getpass.getuser()
with open('./config.yml', 'w', encoding='utf-8') as wf:
yaml.dump(data, wf)
logger.info('写入完成')
sys.exit(0)
except ValueError or IndexError:
logger.error('请输入正确的索引')
sys.exit(1)
else:
logger.error('无搜索结果')
sys.exit(1)
else:
logger.error('无搜索结果')
sys.exit(1)
2021-11-12 19:19:34 +08:00