亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

Python 讀取csv文件批量入庫Mysql

2024-06-28 16:00:35
字體:
來源:轉載
供稿:網友

注:僅為筆記

1、Python ftp連接,下載文件

def ftpDownload() :	#創建ftp對象實例 	ftp = FTP()  	ftp.connect(FTPip, FTPPORT)  	#通過賬號和密碼登錄FTP服務器 	ftp.login(USERNAME,USERPWD)  	#如果參數 pasv 為真,打開被動模式傳輸 (PASV MODE) ,	#否則,如果參數 pasv 為假則關閉被動傳輸模式。	#在被動模式打開的情況下,數據的傳送由客戶機啟動,而不是由服務器開始。	#這里要根據不同的服務器配置#	ftp.set_pasv(0)	#在FTP連接中切換當前目錄 #	CURRTPATH= "/home1/ftPRoot/ybmftp/testupg/payment"#	ftp.cwd(CURRTPATH)  	#為準備下載到本地的文件,創建文件對象  	f = open(DownLocalFilename, 'wb')  	#從FTP服務器下載文件到前一步創建的文件對象,其中寫對象為f.write,1024是緩沖區大小  	ftp.retrbinary('RETR ' + DownRoteFilename , f.write , 1024)  	#關閉下載到本地的文件  	#提醒:雖然Python可以自動關閉文件,但實踐證明,如果想下載完后立即讀該文件,最好關閉后重新打開一次 	f.close()  	#關閉FTP客戶端連接	ftp.close()

2、日期字符串生成,拼裝文件名稱

def getYesterday() :	now = datetime.datetime.now()	date = now + datetime.timedelta(days = -1)	return date.strftime('%Y%m%d')

3、csv文件讀取

file_zip = zipfile.ZipFile(DownRoteFilename,'r')	for file in file_zip.namelist():		file_zip.extract(file,r'.')				with codecs.open(file,'rb','utf-8') as csvfile:	#		with open(file,'rb') as csvfile:			spamreader = csv.reader(csvfile)			line_num = 0			L1 = []			for row in spamreader:				line_num=line_num+1;				if	line_num ==7 :					#print ', '.join(row)					#存放字段前先清空					#SQL_FILEDS =[]					for s in row:						 print  s.decode('utf-8')						 SQL_FILEDS.append(s)				if line_num >7  and len(row) > 1 :					#print ', '.join(row)					L1.append(row)#					print L1					#達到批量處理行數之后批量入庫					if len(L1) >=BATCH_LINE :						MySQL_database(L1)						L1  =[]				#測試時候只讀取幾行					#if line_num >10 :				#	break			print	line_num			#循環讀取數據結束,處理剩余未達到批量處理的數組對象			if len(L1) >0  :				mysql_database(L1)				L1 =[]		#刪除解壓后文件		os.remove(file)注意中文編碼問題,

4、mysql數據插入

def mysql_database(L1):	conn = MySQLdb.connect(host='localhost', user='root',passwd='***',charset="utf8")	cursor = conn.cursor()	conn.select_db('mask_data')	#for row in L1 :	#	print row	#print SQL_FILEDS	sql_parm=''	for s in  SQL_FILEDS :		sql_parm +='%s,'	sql = 'insert into test1  VALUES ('+sql_parm[:-1]+') ' 	print sql	print len(L1)	cursor.executemany(sql,L1)			#test_all_count = int(cursor.rowcount)	#test_all = cursor.fetchall()		conn.commit()	cursor.close()	conn.close() 需要留意中文編碼,
conn = MySQLdb.connect(host='localhost', user='root',passwd='***',charset="utf8") 
如果不指定編碼會默認編碼,導致中文亂碼。

完成腳本:

# -*- coding: utf-8 -*-#!/usr/bin/env python##Author: Liu6import zipfileimport csvimport codecs import MySQLdbimport datetimeimport osfrom ftplib import FTPimport  codecs #import pandas as pdimport sysreload(sys)sys.setdefaultencoding('utf-8')def getYesterday() :	now = datetime.datetime.now()	date = now + datetime.timedelta(days = -1)	return date.strftime('%Y%m%d')dateStr = getYesterday()print dateStr#測試使用的字符串dateStr = '20170102'DownRoteFilename='provincePayDay_Zz-'+dateStr+'080300.zip'DownLocalFilename = DownRoteFilenameSQL_FILEDS =  []#設置批量處理數據數量BATCH_LINE = 10000#指定IP地址和端口,賬號密碼信息FTPIP= "127.0.0.1"FTPPORT= 21USERNAME= "test"USERPWD= "test"encoding='utf-8'def ftpDownload() :	#創建ftp對象實例 	ftp = FTP()  	ftp.connect(FTPIP, FTPPORT)  	#通過賬號和密碼登錄FTP服務器 	ftp.login(USERNAME,USERPWD)  	#如果參數 pasv 為真,打開被動模式傳輸 (PASV MODE) ,	#否則,如果參數 pasv 為假則關閉被動傳輸模式。	#在被動模式打開的情況下,數據的傳送由客戶機啟動,而不是由服務器開始。	#這里要根據不同的服務器配置#	ftp.set_pasv(0)	#在FTP連接中切換當前目錄 #	CURRTPATH= "/home1/ftproot/ybmftp/testupg/payment"#	ftp.cwd(CURRTPATH)  	#為準備下載到本地的文件,創建文件對象  	f = open(DownLocalFilename, 'wb')  	#從FTP服務器下載文件到前一步創建的文件對象,其中寫對象為f.write,1024是緩沖區大小  	ftp.retrbinary('RETR ' + DownRoteFilename , f.write , 1024)  	#關閉下載到本地的文件  	#提醒:雖然Python可以自動關閉文件,但實踐證明,如果想下載完后立即讀該文件,最好關閉后重新打開一次 	f.close()  	#關閉FTP客戶端連接	ftp.close()def mysql_database(L1):	conn = MySQLdb.connect(host='localhost', user='root',passwd='***',charset="utf8")	cursor = conn.cursor()	conn.select_db('mask_data')	#for row in L1 :	#	print row	#print SQL_FILEDS	sql_parm=''	for s in  SQL_FILEDS :		sql_parm +='%s,'	sql = 'insert into test1  VALUES ('+sql_parm[:-1]+') ' 	print sql	print len(L1)	cursor.executemany(sql,L1)			#test_all_count = int(cursor.rowcount)	#test_all = cursor.fetchall()		conn.commit()	cursor.close()	conn.close()def  readCSVFile() :	file_zip = zipfile.ZipFile(DownRoteFilename,'r')	for file in file_zip.namelist():		file_zip.extract(file,r'.')				with codecs.open(file,'rb','utf-8') as csvfile:	#		with open(file,'rb') as csvfile:			spamreader = csv.reader(csvfile)			line_num = 0			L1 = []			for row in spamreader:				line_num=line_num+1;				if	line_num ==7 :					#print ', '.join(row)					#存放字段前先清空					#SQL_FILEDS =[]					for s in row:						 print  s.decode('utf-8')						 SQL_FILEDS.append(s)				if line_num >7  and len(row) > 1 :					#print ', '.join(row)					L1.append(row)#					print L1					#達到批量處理行數之后批量入庫					if len(L1) >=BATCH_LINE :						mysql_database(L1)						L1  =[]				#測試時候只讀取幾行					#if line_num >10 :				#	break			print	line_num			#循環讀取數據結束,處理剩余未達到批量處理的數組對象			if len(L1) >0  :				mysql_database(L1)				L1 =[]		#刪除解壓后文件		os.remove(file)ftpDownload()readCSVFile()#刪除ftp上下載的文件#os.remove(DownLocalFilename)											


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合中文字幕在线观看| 精品久久久国产精品999| 免费91在线视频| 国产日韩欧美日韩大片| 国产日韩在线亚洲字幕中文| 亚洲精品www久久久久久广东| 91av在线播放| 成人黄色短视频在线观看| 国产精品自拍小视频| 成人在线视频网站| 日韩欧美在线网址| 在线精品播放av| 91免费福利视频| 日韩电影大全免费观看2023年上| 成人性生交大片免费看视频直播| 欧美午夜视频一区二区| 欧美日韩裸体免费视频| 北条麻妃久久精品| 欧美人在线视频| 中文字幕精品视频| 一区二区三区 在线观看视| 91地址最新发布| 中文字幕成人在线| 亚洲精品一区久久久久久| 久久成人人人人精品欧| 国产女精品视频网站免费| 日韩电影大全免费观看2023年上| 久久久av亚洲男天堂| 欧美性色19p| 国产日韩欧美日韩| 精品网站999www| 日韩国产中文字幕| 91网站免费观看| 国产婷婷97碰碰久久人人蜜臀| 欧美高清激情视频| 国产精品免费视频久久久| 精品少妇v888av| 国产在线观看精品一区二区三区| 国产精品久久久久久久久久新婚| 91手机视频在线观看| 国产精品丝袜久久久久久不卡| 欧美日韩免费观看中文| 91国内免费在线视频| 欧美成人免费网| 成人免费视频a| 午夜精品三级视频福利| 免费91麻豆精品国产自产在线观看| 亚洲国产91色在线| 亚洲乱亚洲乱妇无码| 97超级碰碰人国产在线观看| 成人国产精品免费视频| 日韩av一区在线| 国内外成人免费激情在线视频网站| 这里只有精品视频在线| 奇门遁甲1982国语版免费观看高清| 亚洲第一网中文字幕| 成人在线免费观看视视频| 91精品国产高清久久久久久久久| 91av视频在线| 亚洲欧美综合v| 久久99久久99精品免观看粉嫩| 国产拍精品一二三| 北条麻妃在线一区二区| 午夜免费日韩视频| 日韩的一区二区| 欧美一区在线直播| 欧美怡春院一区二区三区| 欧美限制级电影在线观看| 精品亚洲va在线va天堂资源站| 欧美精品一本久久男人的天堂| 日韩免费在线视频| 91免费看视频.| 色伦专区97中文字幕| 日韩欧美在线免费观看| 亚洲色图欧美制服丝袜另类第一页| 自拍偷拍亚洲精品| 日韩资源在线观看| 97精品国产97久久久久久春色| 亚洲精品一区中文| 日本一本a高清免费不卡| 亚洲成人久久久久| 欧美韩日一区二区| 欧美色视频日本高清在线观看| 亚洲综合精品一区二区| 亚洲人在线视频| 成年人精品视频| 国产脚交av在线一区二区| 欧美理论电影在线观看| 亚洲第一福利网| 欧美野外wwwxxx| 久久6免费高清热精品| 国产精品电影网站| 国产一区二区三区毛片| 色偷偷亚洲男人天堂| 久久精品久久久久| 日韩欧美国产一区二区| 狠狠综合久久av一区二区小说| 国产精品揄拍一区二区| 亚洲午夜av久久乱码| 成人免费视频在线观看超级碰| 亚洲性日韩精品一区二区| 国产精品久久久久久久久免费看| 国内精品400部情侣激情| 91九色蝌蚪国产| 久久亚洲影音av资源网| 中文欧美日本在线资源| 国产精品视频999| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩电影中文字幕在线观看| 亚洲自拍小视频| 韩国福利视频一区| 九九热在线精品视频| 91亚洲永久免费精品| 国产精品福利无圣光在线一区| 在线观看精品自拍私拍| 久久久久国产精品www| 久久69精品久久久久久国产越南| 精品自在线视频| 亚洲在线视频福利| 亚洲区一区二区| 国产午夜精品美女视频明星a级| 久久伊人91精品综合网站| 亚洲精品国产精品乱码不99按摩| 国产成人啪精品视频免费网| 国产精品视频精品视频| 蜜月aⅴ免费一区二区三区| 国产丝袜视频一区| 欧美激情第1页| 欧美精品在线观看91| 91热福利电影| 欧美在线视频免费播放| 亚洲国产精品国自产拍av秋霞| 亚洲国产精彩中文乱码av| 在线观看国产成人av片| 久久精品国产清自在天天线| 国产午夜精品全部视频播放| 亚洲女人天堂视频| 欧美激情亚洲精品| 欧美性感美女h网站在线观看免费| 中文字幕av一区二区三区谷原希美| 色婷婷成人综合| 欧美精品免费在线| 国产有码在线一区二区视频| 国产一区二区成人| 欧洲成人在线视频| 精品国产91乱高清在线观看| 另类色图亚洲色图| 欧美成人激情在线| 久久福利视频导航| 色综合视频一区中文字幕| 国产精品海角社区在线观看| 日韩欧美亚洲成人| 久久人人看视频| 亚洲最大的免费| 亚洲日韩第一页| 88xx成人精品| 欧美多人爱爱视频网站| 91av在线影院| 福利视频导航一区| 久久久精品亚洲| 26uuu国产精品视频| 国产a∨精品一区二区三区不卡| 国产午夜精品美女视频明星a级| 久久久国产视频|