python讀取txt並將資料插入到sql中
阿新 • • 發佈:2019-02-18
原始資料在txt中 處理有很多不便 想要把它們插入到sql中去
程式碼如下:
連線資料庫:
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatabase",charset="utf8")
cursor = conn.cursor()
if conn:
print("data base has already connected")
開啟檔案獲取一行資料
拼接insert語句f = open("data_first.csv","r") f.readline()#因為txt中第一行一般為列名,因此用readline先將這行資料跳過
我要插入的資料表為MyData,資料列為21列,第一列為id列。資料表已經在sql中存在,且txt中用逗號隔開的資料列也為21列
insertcolumn = "id "
s = "'%s'"
for i in range(1,20,1):
s = s + ",'%s'"
insertcolumn = "Insert into MyData "+"values("+s+")"
迴圈插入
這一部分需要注意的是,用readline讀取的時候,會把每行末尾的\n也讀取進去,可以用strip對其進行處理
關閉while True: line = f.readline().strip('\n')#按行讀取且處理掉換行符,效果:"\'\n'變為了'' if line: #print(line.split(',')) list = line.split(',')#資料以逗號分隔,因此用split(',') #print(len(list))#獲取長度 insertcolumn_full = insertcolumn%tuple(list)#%s的字串格式化傳參只支援元組和字典,不支援列表,因此這裡需要用tuple(list)將list轉為元組 #print(insertcolumn_full) cursor.execute(insertcolumn_full)#執行 conn.commit()#事務提交,這句一定要有!否則即使python不報錯 資料也無法成功插入sql else: break
cursor.close()
conn.close()
f.close()