请求帮助
我写的这个程序可以正常的运行并且可以正常地输出结果,但是就是怎么可以让我第二次运行的结果自动覆盖掉第一次的结果呀,以及我想制作一个查询的界面,就是用pyqt5做一个输入查询的英雄就出来这个英雄最低战力地区的界面,这个怎么做到啊
import csv
import requests
import re
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
hero_url = 'https://pvp.qq.com/web201605/herolist.shtml'
response = requests.get(url=hero_url, headers=headers)
response.encoding = 'gbk'
heros = re.findall('alt=".*?">(.*?)</a>', response.text)[0:93]
# 新建一个列表,用于保存所有英雄的信息
hero_info_list = []
for hero in heros:
url = f'https://www.sapi.run/hero/select.php?hero={hero}&type=qq'
res = requests.get(url)
data = res.json()['data']
name = data['name']
area = data['area']
areaPower = data['areaPower']
city = data['city']
cityPower = data['cityPower']
province = data['province']
provincePower = data['provincePower']
platform = data['platform']
updatetime = data['updatetime']
# 构建一个字典,保存当前英雄的信息
hero_info = {
'英雄名称': name,
'服务区': platform,
'更新时间': updatetime,
'铜牌区域': area,
'铜牌分数': areaPower,
'银牌区域': city,
'银牌分数': cityPower,
'金牌区域': province,
'金牌分数': provincePower
}
# 将当前英雄的信息加入到列表中
hero_info_list.append(hero_info)
# 将所有英雄的信息写入CSV文件
with open('最低战力.csv', mode='a', encoding='utf-8_sig', newline='') as f:
csv_writer = csv.DictWriter(f, fieldnames=['英雄名称', '服务区', '更新时间', '铜牌区域', '铜牌分数', '银牌区域',
'银牌分数', '金牌区域', '金牌分数'])
# 如果文件为空,先写入表头
if f.tell() == 0:
csv_writer.writeheader()
# 写入所有英雄的信息
csv_writer.writerows(hero_info_list)