python批量读取csv并入库pg_Python批量读取CSV文件并导入MySQL数据库中

问题:本地有一大堆CSV文件需要导入到MySQL中

要求:一个CSV文件创建一张表,并以CSV文件名(去掉.csv后缀)命名MySQL表名,CSV文件的字段名作为MySQL中的字段名。

因为本地的csv文件大约有1-2k个手动去MySQL中建表然后倒入完全不现实。于是就用Python写了一个脚本,自动读取本地文件夹下的csv文件,导入到MySQL中。

准备工作:

语言:python 2

第三方模块:os,pandas,pymysql

工具:Pycharm

思路分析:

1.因为需要读取本地文件下的所有csv文件,那就需要用到os模块

#csv文件目录

dir = 'C:\data'

file_list = os.listdir(dir)

for i in range(len(file_list)):

file_path = os.path.join(dir, file_list[i])

if os.path.isfile(file_path):

#自己的操作

我的csv文件在C:\data下 ,使用os.listdir()遍历给定路径下的文件,使用os.path.isfile()判断是文件还是目录,如果是文件执行导入到MySQL中的操作。想了解更多os操作可以看这篇博客

2.连接MySQL数据库

指定数据库,端口,用户,密码即可。

hostname = '127.0.0.1'

port = 3306

user = 'root'

passwd = '123'

db = 'undata'

M = CsvToMysql(hostname=hostname, port=port, user=user, passwd=passwd, db=db)

3.读取csv文件

使用的是pandas读取csv文件,这里有两点坑。

第一:csv文件中的字段可能会有空,在读取的时候会变成nan,nan到了mysql中是没有办法处理的就会报错,所以需要加上这个keep_default_na=False,设为false后就会保留原空字符,就不会变成nan了。

第二:在用csv文件名作为mysql表名创建表时,可能

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值