python办公自动化实例(三):批量修改文件名、创建文件夹

场景:整理一批文件,发现文件命名不够规范,想要重新命名,但文件很多,人工操作,过程繁复,这时候就可以使用程序来代替人工处理了。

实现效果:

其中,新文件名可根据我们想要的命名规范自行输入表格,然后由程序提取新文件名并自动批量冲命名文件。

代码如下:

#!user/bin/python3
# _*_ coding:utf-8 _*_
# author TingXiao-UI
import os
import xlsxwriter as xw
import xlrd#只读excel

#提取文件名到表格
def getName(rp):
	print("开始提取文件名!")
	# 创建excel
	xlsxName ='批量命名.xlsx'
	workbook = xw.Workbook(xlsxName)
	sheet1 = workbook.add_worksheet('sheet1')
	row_0 = ['ID','旧文件名','新文件名']
	sheet1.write_row('A1', row_0)
	#遍历文档,批量提取文件名并写入到表格
	m = 0
	for root,dirs,files in os.walk(rp+'\\文件'):
		for file in files:
			curName = os.path.join(file)
			# curPath = os.path.join(root,file)
			m += 1
			# 序号
			sheet1.write(m,0,m)
			# 旧文件名
			sheet1.write(m,1,curName)
			# 新文件名

	workbook.close()#关闭excel后台运行
	print("文件名提取完毕!")
#批量重命名
def reName(rp):
	# 打开文档
	xlsxName = '批量命名.xlsx'
	file = xlrd.open_workbook(rp+'\\'+xlsxName)  # xlrd模块
	sheet1 = file.sheet_by_index(0)
	rows = sheet1.nrows#获取行数
	# sheet1.row_values(0, 6, 10)  # 取第1行,第6~10列(不含第10表)
	# sheet1.col_values(0, 0, 5)  # 取第1列,第0~5行(不含第5行)
	# sheet1.row_slice(2, 0, 2)  # 获取单元格值类型和内容
	# sheet1.row_types(1, 0, 2)  # 获取单元格数据类型
	oldNames = sheet1.col_values(1,1,rows+1)#取第1列,第0~rows+1行(不含第rows+1行)
	newNames = sheet1.col_values(2,1,rows+1)#取第2列,第0~rows+1行(不含第rows+1行)
	#遍历文档,批量重命名
	for root,dirs,files in os.walk(rp+'\\文件'):
		for file in files:
			curName = os.path.join(file)
			curPath = os.path.join(root,file)
			id = oldNames.index(curName)#获取索引
			newname = newNames[id]
			newPath = os.path.join(root,newname)
			# 新文件名
			os.rename(curPath, newPath)  # 用os模块中的rename方法对文件改名
if __name__=='__main__':
	rootPath = os.getcwd()#获取当前文件路径
	# getName(rootPath)#提取文件名
	reName(rootPath)#批量重命名

批量创建文件夹也简单,实现效果如下所示

 代码如下:

#!user/bin/python3
# _*_ coding:utf-8 _*_
# author TingXiao-UI
import os
import xlsxwriter as xw
import xlrd#只读excel

#提取文件名到表格
def getName(rp):
	print("开始提取文件名!")
	# 创建excel
	xlsxName ='批量命名.xlsx'
	workbook = xw.Workbook(xlsxName)
	sheet1 = workbook.add_worksheet('sheet1')
	row_0 = ['ID','旧文件名','新文件名']
	sheet1.write_row('A1', row_0)
	#遍历文档,批量提取文件名并写入到表格
	m = 0
	for root,dirs,files in os.walk(rp+'\\文件'):
		for file in files:
			curName = os.path.join(file)
			# curPath = os.path.join(root,file)
			m += 1
			# 序号
			sheet1.write(m,0,m)
			# 旧文件名
			sheet1.write(m,1,curName)
			# 新文件名

	workbook.close()#关闭excel后台运行
	print("文件名提取完毕!")
#批量创建文件夹
def createFolder(rp,name):
	# 打开文档
	xlsxName = name
	file = xlrd.open_workbook(rp+'\\'+xlsxName)  # xlrd模块
	sheet1 = file.sheet_by_index(0)
	rows = sheet1.nrows#获取行数
	# sheet1.row_values(0, 6, 10)  # 取第1行,第6~10列(不含第10表)
	# sheet1.col_values(0, 0, 5)  # 取第1列,第0~5行(不含第5行)
	# sheet1.row_slice(2, 0, 2)  # 获取单元格值类型和内容
	# sheet1.row_types(1, 0, 2)  # 获取单元格数据类型
	folderNames = sheet1.col_values(0,1,rows+1)#取第1列,第2~rows+1行(不含第rows+1行)
	if len(folderNames)>1:
		#批量创建合并文件夹
		for folder in folderNames:
			curPath = rp+'\\'+folder
			if os.path.exists(curPath) is False:
				os.mkdir(curPath)
if __name__=='__main__':
	rootPath = os.getcwd()#获取当前文件路径
	xlsxName = '文件夹.xlsx'
	createFolder(rootPath,xlsxName)##批量创建文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值