Python調用MYSQL,將檔案名稱和路徑批量入庫用法小結

來源:互聯網
上載者:User

標籤:

最近項目需要將大量的壓縮檔匯入到資料庫中,所以開始總結用Python批量處理的辦法,本次是首先將這些壓縮檔的檔案名稱提取出來,然後匯入到資料庫中。

由於涉及到路徑的讀取處理,所以方法有os模組和commands模組,本次主要採用commands模組(有時間的話,一定要再探索一下os模組實現的方式)。

# encoding: utf-8
#!/usr/bin/python

import commands
import MySQLdb

conn = MySQLdb.connect(
host=‘localhost‘,
user=‘***‘,
passwd=‘***‘,
db=‘***‘,
charset=‘utf8‘)

cur = conn.cursor()

#path = ‘/home/***/***/‘
res = commands.getstatusoutput( ‘find /home/***/***/企業名錄/‘ ) #res 為返回的元組,包含(status,pathlist)即狀態代碼,路徑兩個元素;find為Linux下尋找檔案的命令
#res = commands.getstatusoutput( ‘find /home/***/***/‘ )

pathlist = res[1].split(‘\n‘) #通過下標為1,提取出元祖res中的路徑,並通過字串方法split,去掉‘\n’,轉換成一個一維的路徑列表


#for line in pathlist:
#type(line)

for i in range(0,len(pathlist)): #通過for迴圈將列表中的檔案路徑取出

fileLine = pathlist[i] #取出後的檔案路徑為一個字串

#print type(fileLine)
seperator = fileLine.rfind(‘/‘) #通過字串方法rfind,找到字元‘/’在路徑中最後出現的位置,在此位置之前為路徑,在此之後為檔案名稱(但是有一個小問題是檔案夾的名字是一個路徑)
filePath = fileLine[0:seperator+1] #通過切片的方式提取出檔案路徑
fileName = fileLine[seperator+1:] #通過切片的方式提取出檔案名稱
fileType = fileLine[-3:]

#sql = "insert into table rarFileList(ID,filePath,fileName,fileType) values (%s,%s,%s,%s)"(str(i),filePath,fileName,fileType)
#sql = "insert into table rarFileList(ID,filePath,fileName,fileType) values (" + str(i) + "," + filePath + "," + fileName + "," + fileType + ")"  #此處為多種方式嘗試,需要小心會有一些資料類型錯誤等情況出現
#print sql
#cur.execute(sql)
cur.execute("insert into rarFileList(ID,filePath,fileName,fileType) values (%s,%s,%s,%s)",(i,filePath,fileName,fileType))
#if fileLine[-3:] == ‘rar‘:
#sql = "update rarFileList set status= ‘done‘ where fileType = ‘rar‘"
#cur.execute(sql)
#elif fileLine[-3:]== ‘zip‘:
#sql = "update rarFileList set status= ‘done‘ where fileType =‘zip‘"
#cur.execute(sql)
cur.close()
conn.commit()
conn.close()

Python調用MYSQL,將檔案名稱和路徑批量入庫用法小結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.