加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
insert_data.py 1.99 KB
一键复制 编辑 原始数据 按行查看 历史
liuyueming 提交于 2021-12-29 17:54 . 提交所有代码
# -*- 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()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化