代码拉取完成,页面将自动刷新
同步操作将从 liuyueming/noaa 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# -*- coding: utf-8 -*-
# @Time : 2021/12/29 15:58
# @Author : Liuym
# @Email : 274670459@qq.com
# @File : insert_data.py
# @Project : noaa
# @Description : 辅助函数库
import csv
import pymysql
import os
from config import *
db = pymysql.connect(host=HOST, user=USER, passwd=PASSWORD, db=DB, charset=CHARSET)
cursor = db.cursor()
# 插入数据库函数,传递参数为csv文件路径
def insert_data_from_csv(csv_file):
f = csv.reader(open(csv_file,'r'))
for i in f:
# csv第一行是字段名,排除掉
if i[0] == "STATION":
continue
sql = 'insert into data values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'
# print(i)
# 插入到数据库
try:
cursor.execute(sql,list(i[n] for n in range(28)))
db.commit()
except:
print('插入数据错误')
# 遍历接压缩后的文件夹,获取csv文件,如果符合条件则把文件名作为参数传递给函数insert_data_from_csv插入数据
def insert_data():
# 遍历文件夹tar_gz
for tar_gz_dir in os.listdir('tar_gz'):
# 如果是文件夹则继续遍历即只遍历下面的文件夹,排除压缩文件
if os.path.isdir(f'tar_gz/{tar_gz_dir}'):
# 排除压缩文件继续遍历文件夹,下面的遍历文件列表为csv文件
for tar_gz_file in os.listdir(f'tar_gz/{tar_gz_dir}'):
# 切割文件,如果csv文件是以5开头则代表是中国的气象站,则调用插入函数插入,否则不处理
if f'tar_gz/{tar_gz_dir}/{tar_gz_file}'.split('/')[2][0] == '5':
print('是中国的气象站网数据库插入数据%s'%(f'tar_gz/{tar_gz_dir}/{tar_gz_file}'))
insert_data_from_csv(f'tar_gz/{tar_gz_dir}/{tar_gz_file}')
else:
print('外国气象站数据不处理')
insert_data()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。