天气梳理:
import openpyxl
import csv
class csvtodata():
def __init__(self,csvdataname):
# 获取梳理好的天气*csv数据
self.csvdataname=csvdataname
# 读取csv文件内容
def readcsv(self):
# 装载所有字典
all_dics=[]
with open(self.csvdataname)as f:
fcsv=csv.reader(f)
# csv首行--标题
headers=next(fcsv)
# 遍历每一行
for row in fcsv:
# print(row)
#date日期
rq_wekk= rqweek=row[0]
rqweek=row[0].split(' ')
rq=rqweek[0]
week=rqweek[1]
#气象
zg=row[1]
zd=row[2]
tianqi=row[3]
fengli=row[4]
dicnr={"rq":rq,"week":week,"zg":zg,"zd":zd,"tianqi":tianqi,"fengli":fengli,"rq_wekk":rq_wekk}
all_dics.append(dicnr)
# print(all_dics)
# 返回一个包含字典的列表
return all_dics
# [{'rq': '2023-03-23', 'week': '周四', 'zg': '9°', 'zd': '3°', 'tianqi': '多云~阴', 'fengli': '西风1级'}
def xlsxsavefun(self,all_dics):
sSourceFile="施工日志模版.xlsx"
# sSourceFile="施工.xlsx"
# 咸阳PM.csv 我只需要 “咸阳PM”
newcsvdatan_name=csddataname.split(".")[0]
sTargetFile="Target_"+newcsvdatan_name+".xlsx"
# sTargetFile="Target.xlsx"
wb=openpyxl.load_workbook(sSourceFile)
for dicitem in all_dics:
rq_wekk=dicitem['rq_wekk']
rq=dicitem['rq']
week=dicitem['week']
zg=dicitem['zg']
zd=dicitem['zd']
tianqi=dicitem['tianqi']
fengli=dicitem['fengli']
# 复制第一个sheet的内容,同时修改名字为rq(日期)
rsheetq=wb.copy_worksheet(wb.worksheets[0])
# 每个sheet表格名称为2023-5-21类似
rsheetq.title=rq
evesheet=wb[rq]
#
# 把响应的单元值,写入到sheet表格内
evesheet['F6']=tianqi
evesheet['F8']=fengli
evesheet['F9']=zg
evesheet['F10']=zd
# 格式日期为好看格式,由原来的2023-03-23 -->2023年3月23日
# 日期和星期几
yer_m_d=rq.split("-")
yer=yer_m_d[0]
m=yer_m_d[1]
d=yer_m_d[2]
format_date=f"{yer}年{m}月{d}日"
evesheet['H5']=format_date
# evesheet['H5']=rq
evesheet['N5']=week
# 循环后保存到表格里内容
wb.save(sTargetFile)
print("数据写入完成...")
def run(self):
self.all_dics = self.readcsv()
self.xlsxsavefun(self.all_dics)
if __name__ == '__main__':
csddataname=input("请输入梳理好的城市提天气*.csv文件的名称:")
data_ret=csvtodata(csddataname)
data_ret.run()