add: merged the SearchCity.py into QWeather.py

This commit is contained in:
RTAkland
2021-11-15 22:27:18 +08:00
parent d1c2ba4e74
commit c5513ae2dc

View File

@@ -5,11 +5,13 @@
# @Create Time: 2021/10/23 # @Create Time: 2021/10/23
# @File Name: QWeather.py # @File Name: QWeather.py
import os
import sys import sys
import json import json
import time import time
import pandas
import smtplib import smtplib
import getpass
import requests import requests
import argparse import argparse
import multiprocessing import multiprocessing
@@ -553,6 +555,63 @@ def check_config(): # 检查各项配置是否完成填写
sys.exit(1) sys.exit(1)
def read_excel(kw: str):
"""
:param kw: 用于搜索的关键字
:return: city_list
"""
index_count = 0
city_list = []
# logger.info('文件读取中...')
df = pandas.read_excel('./resource/China-City-List.xlsx')
pandas.set_option('max_rows', None) # 读取xlsx文件不折叠
data_records = df.to_dict(orient='split')
for i in data_records['data']:
if kw in str(i):
city = [index_count, i[0], i[2], i[4], i[6]]
index_count += 1
city_list.append(city)
return city_list
def first_start():
flag = os.path.isfile('./logs/flag')
if flag:
logger.info(language['input_a_city_name'])
time.sleep(0.5)
city_name = input('-->')
searched_city = read_excel(city_name)
logger.info(f'{language["user_input"]} [{city_name}]')
for cities in searched_city:
logger.info(f'{cities[0]}-{cities[1]}-{cities[2]}-{cities[3]}-{cities[4]}')
logger.info(language['select_a_index'])
time.sleep(0.5)
while True:
try:
time.sleep(0.5)
user_input = input('-->')
if user_input == 'quit':
logger.info('User quit')
sys.exit(1)
index = searched_city[int(user_input)]
with open('./config.yml', 'r', encoding='utf-8') as of:
data = YAML().load(of)
data['request-settings']['location'] = index[1]
data['only-view-settings']['city-name'] = f'{index[2]}-{index[3]}-{index[4]}'
data['only-view-settings']['time'] = time.strftime("%a %b %d %Y %H:%M:%S", 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(language['write_successfully'])
os.remove('./logs/flag')
break
except (IndexError, ValueError) as e:
logger.info(e)
logger.error(language['input_type_error'])
continue
if __name__ == '__main__': if __name__ == '__main__':
config_name = 'config.yml' # 配置文件名称 -> 用于开发时快速调试 config_name = 'config.yml' # 配置文件名称 -> 用于开发时快速调试
@@ -594,6 +653,8 @@ if __name__ == '__main__':
with open(f'./resource/lang/{language_sel}.json', 'r', encoding='utf-8') as lang_f: with open(f'./resource/lang/{language_sel}.json', 'r', encoding='utf-8') as lang_f:
language = json.loads(lang_f.read()) language = json.loads(lang_f.read())
first_start()
# 检查配置文件是否填写完成 # 检查配置文件是否填写完成
check_config() check_config()