From dc0a64d95900527a9413fd03c67adb33e57a8d51 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Thu, 11 Nov 2021 21:21:48 +0800 Subject: [PATCH] upload SearchCity.py --- SearchCity.py | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 SearchCity.py diff --git a/SearchCity.py b/SearchCity.py new file mode 100644 index 0000000..65db326 --- /dev/null +++ b/SearchCity.py @@ -0,0 +1,80 @@ +#!/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)