Python调用MYSQL,将文件名和路径批量入库用法小结
最近项目需要将大量的压缩文件导入到数据库中,所以开始总结用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()
最新文章
- GitHub上最火的40个Android开源项目
- 使用File类递归列出E盘下全部文件
- POJ1222_EXTENDED LIGHTS OUT
- uestc_retarded 模板
- 教你利用iframe在网页中显示天气
- 身份证校验程序(上)- 零基础入门学习Delphi48
- TFS Build Definition
- HDU2795 billboard【转化为线段树。】
- [2011山东ACM省赛] Identifiers(模拟)
- Java基础语法<;八>; 继承
- 剖析touch事件在View中的传递
- (转)Schema
- 【MYSQL】SQL 的join 区别
- 栈的实现Java
- TensorFlow简易学习[3]:实现神经网络
- macbookPro 搭建maven环境下载jar包
- C# 类如何声明索引器以提供对类的类似数组的访问的代码
- flask 图文混排的简单操作
- 如何解决Failed to retrieve MSVC Environment from XXXXXXXX
- Axure RP 9 Beta 开放下载(更新激活密钥和汉化包)