python指令碼
第一次寫部落格,已經工作一年半了,從事PHP後端,最近嘗試新語言,換換胃口,看了看go和python,最後選擇了python。剛好上週遇到讀取excel,編寫sql匯入資料庫的工作,嘗試寫個指令碼。下次就不用重複寫了。
執行環境:
- python 3.8.1
- windows 7
一。連線mysql
連線mysql有很多種方式:pymysql mysql-connector mysqldb。之前看到的一篇效能分析上,非ORM操作mysqldb效能最佳,ORM操作mysql-connector效能最佳。指令碼暫時不涉及效能方面的問題,就選擇了pymysql。
安裝依賴庫
pip3 install PyMySQL
指令碼
import pymysql
def runSql(sql):
db = pymysql.connect(host="127.0.0.1",
port=3306,
user="test",
password="test",
db="test",
charset="utf8")
#這個是控制返回的資料結構為字典的,即把資料表裡的欄位名作為key返回
# cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
cursor = db.cursor()
try:
cursor.execute(sql)
results = cursor.fetchall()
except:
print("error")
db.close()
return results
#pip3 install PyMySQL
二. 讀取excel
python 對excel的處理有xlrd/xlwt與openpyxl ,查閱的效能分析結果是,對大檔案的處理xlrd/xlwt效能更高,暫時對效能分析沒有深入接觸,沒有遇到效能瓶頸,指令碼暫時不考慮這些,這裡使用xlrd/xlwt。
安裝依賴庫
pip3 install xlrd
指令碼
import xlrd
table = xlrd.open_workbook(r'C:.sers.dministrator.esktop.ead.xlsx')
sheet = table.sheet_by_name('Sheet1') # 根據名字取表單
nrows = sheet.nrows # 獲取行數
line = 1
while line < nrows:
a = sheet.cell(line, 1).value
b = sheet.cell(line, 2).value
line += 1
其他相關方法
name = table.sheet_names() # 獲得所有表單的名字
ncols = sheet.ncols # 獲取列數
結語
上面的2個依賴庫裡還有很多的方法,這裡暫時沒有用到,下次用到再補充。
本作品採用《CC 協議》,轉載必須註明作者和本文連結