最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)讀取excel寫入mysql的小工具詳解

 更新時間:2017年11月20日 09:53:15   作者:zhoutk  
EXCEL 和 MySQL 大體上來說都可以算是"數(shù)據(jù)庫",MySQL貌似有EXCEL的接口,但是最近在自學(xué)Python,用Python實現(xiàn)了一下,下面這篇文章主要給大家介紹了關(guān)于利用python實現(xiàn)讀取excel寫入mysql的一個小工具,需要的朋友可以參考下。

Python是數(shù)據(jù)分析的強大利器

利用Python做數(shù)據(jù)分析,第一步就是學(xué)習(xí)如何讀取日常工作中產(chǎn)生各種excel報表并存入數(shù)據(jù)中,方便后續(xù)數(shù)據(jù)處理。
這里向大家分享python如何讀取excel,并使用Python將數(shù)據(jù)存入Mysql中,有需要的朋友們一起來看看吧。

背景

需要導(dǎo)入全國高校名錄到數(shù)據(jù)庫,從教委網(wǎng)站下到了最新的數(shù)據(jù),是excel格式,需要做一個工具進行導(dǎo)入,想試用一下python,說干就干。


  • xlrd : excel讀寫庫
  • pymysql : mysql數(shù)據(jù)庫驅(qū)動庫,純python打造
  • re : 正則表達式庫,核心庫

前兩個用pip輕松完成安裝,本人是在mac pro是進行的,過程很順利,以前在mac上裝mysqlclient一直安裝不上,所以一度放棄使用python,但我在linux下安裝mysqlclient卻沒有任何問題。

源代碼

很簡單的小腳本,留存紀(jì)念。值得注意的一點,數(shù)據(jù)庫連接字段串中要設(shè)定字符編碼,不然默認是lanti-1,寫入會出錯。

import xlrd
import pymysql
import re

conn = pymysql.connect(host='database connect address', port=1234, user='root',
      passwd='****', db='database name', charset='utf8mb4')
p = re.compile(r'\s')
data = xlrd.open_workbook('./W020170616379651135432.xls')
table = data.sheets()[0]
t = table.col_values(1)
nrows = table.nrows
for i in range(nrows):
 r1 = table.row_values(i)
 if len(r1[2]) == 10:
  cur = conn.cursor()
  cur.execute('insert into `university` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \
     values (%s, %s, %s, %s, %s, %s)',
     (r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))
  conn.commit()
  cur.close()

conn.close()

心得

寫慣了類C的語言,不太習(xí)慣python,想同時掌握兩種風(fēng)格的編程語言,好痛苦啊。python編程效率的確不錯,這是我第一次用python寫實用小程序,連查帶寫帶調(diào)試,一共也就花了一個來小時。python庫與資料豐富,不愁找不到合適的^_^

數(shù)據(jù)庫寫入優(yōu)化

早上閑來無事,用批量寫入優(yōu)化了一下,任務(wù)秒完成,比一條條寫入快了很多, 比我預(yù)想的差別還要大。看來,沒有不好的工具,只是我們沒有用好??!

import xlrd
import pymysql
import re

conn = pymysql.connect(host='database connect address', port=1234, user='root',
      passwd='****', db='database name', charset='utf8mb4')
p = re.compile(r'\s')
data = xlrd.open_workbook('./W020170616379651135432.xls')
table = data.sheets()[0]
t = table.col_values(1)
nrows = table.nrows
ops = []
for i in range(nrows):
 r1 = table.row_values(i)
 if len(r1[2]) == 10:
  ops.append((r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))

cur = conn.cursor()
cur.executemany('insert into `university_copy` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \
     values (%s, %s, %s, %s, %s, %s)', ops)
conn.commit()
cur.close()

conn.close()

python讀取excel文件遇到的問題

1、mac安裝xlrd模塊,如果cmd下執(zhí)行pip install xlrd安裝不成功,可以直接去官網(wǎng)下載,名稱類似這樣的文件xlrd-1.0.0-py3-none-any.whl,切換到已下載的文件路徑在cmd下執(zhí)行pip3 install xlrd-1.0.0-py3-none-any.whl即可
http://pypi.python.org/pypi/xlrd

2、python打開excel報xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'username'

可以確認下要打開的excel保存時是不是本身就存在兼容性等格式提示,如果有的話,需要重新建一個不存在格式問題的文件

import xlrd
from os.path import join,abspath,dirname

fname = join(dirname(dirname(abspath(__file__))),'test1.xls')
bk = xlrd.open_workbook(fname, encoding_override="utf-8")
shxrange = range(bk.nsheets)
try:
sh = bk.sheet_by_name("工作表1")
# 獲取行數(shù)
nrows = sh.nrows
# 獲取列數(shù)
ncols = sh.ncols
print("nrows %d, ncols %d" % (nrows, ncols))
# 獲取第一行第一列數(shù)據(jù)
cell_value = sh.cell_value(1, 1)
# print cell_value

row_list = []
# 獲取各行數(shù)據(jù)
for i in range(0, nrows):
row_data = sh.row_values(i)
row_list.append(row_data)
except:
print("no sheet in %s named Sheet1" % fname)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Pytorch精準(zhǔn)記錄函數(shù)運行時間的方法

    Pytorch精準(zhǔn)記錄函數(shù)運行時間的方法

    參考Pytorch官方文檔對CUDA的描述,GPU的運算是異步執(zhí)行的,一般來說,異步計算的效果對于調(diào)用者來說是不可見的,異步計算的后果是,沒有同步的時間測量是不準(zhǔn)確的,所以本文給大家介紹了Pytorch如何精準(zhǔn)記錄函數(shù)運行時間,需要的朋友可以參考下
    2024-11-11
  • python編寫五子棋游戲

    python編寫五子棋游戲

    這篇文章主要為大家詳細介紹了python編寫五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 基于Python os模塊常用命令介紹

    基于Python os模塊常用命令介紹

    下面小編就為大家?guī)硪黄赑ython os模塊常用命令介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例

    Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例

    在進行軟件測試的過程中,經(jīng)常會需要準(zhǔn)備一批數(shù)據(jù),本文主要介紹了Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • python中各種常見文件的讀寫操作與類型轉(zhuǎn)換詳細指南

    python中各種常見文件的讀寫操作與類型轉(zhuǎn)換詳細指南

    這篇文章主要為大家詳細介紹了python中各種常見文件(txt,xls,csv,sql,二進制文件)的讀寫操作與類型轉(zhuǎn)換,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • 詳解Python 3.10 中的新功能和變化

    詳解Python 3.10 中的新功能和變化

    這篇文章主要介紹了詳解Python 3.10 中的新功能和變化,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python中路徑的三種寫法+路徑前符號含義解讀

    python中路徑的三種寫法+路徑前符號含義解讀

    這篇文章主要介紹了python中路徑的三種寫法+路徑前符號含義解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 解決Python print輸出不換行沒空格的問題

    解決Python print輸出不換行沒空格的問題

    今天小編就為大家分享一篇解決Python print輸出不換行沒空格的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 如何實現(xiàn)在Anaconda中打開python自帶idle

    如何實現(xiàn)在Anaconda中打開python自帶idle

    這篇文章主要介紹了如何實現(xiàn)在Anaconda中打開python自帶idle問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解在python操作數(shù)據(jù)庫中游標(biāo)的使用方法

    詳解在python操作數(shù)據(jù)庫中游標(biāo)的使用方法

    這篇文章主要介紹了在python操作數(shù)據(jù)庫中游標(biāo)的使用方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論

木兰县| 合阳县| 分宜县| 淄博市| 双鸭山市| 叙永县| 五原县| 宜丰县| 麦盖提县| 招远市| 恩平市| 和静县| 邮箱| 辽中县| 政和县| 贵溪市| 桓台县| 怀宁县| 徐汇区| 稷山县| 石家庄市| 缙云县| 黑河市| 东丰县| 花莲县| 凌海市| 河西区| 左权县| 达孜县| 桑植县| 宁德市| 太保市| 万源市| 浠水县| 陵川县| 凤翔县| 阳谷县| 盖州市| 河池市| 抚远县| 台江县|