python办公自动化实例

python办公自动化实例,第1张

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


实现效果:

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


代码如下:

#!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)##批量创建文件夹

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/567688.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-09
下一篇2022-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存