批量重命名多个工作簿的名称
import os
 file_path = 'D:\\TEST\\python与excel'
file_list = os.listdir(file_path)
# 给出工作簿名中包含的需要替换的旧关键字和新关键字
old_book_name = '订单'
new_book_name = '产品'
print('修改前名称:',file_list)
for i in file_list:
     # windows系统中临时文件名的开头是“~$”,判断是否有文件名以“~$”开头的临时文件
     if i.startswith('~$'):
         continue
     # 执行查找和替换,生成新的工作簿名
     new_file = i.replace(old_book_name,new_book_name)
     #  os.path.join(路径或文件夹名,[路径或文件夹名或文件名[,...]])是os模块中的函数,用于把文件夹名和文件名拼接成一个完整路径
     old_file_path = os.path.join(file_path,i)# 构造需要重命名工作簿的完整路径
     new_file_path = os.path.join(file_path,new_file)# 构造重命名后工作簿的完整路径
     os.rename(old_file_path,new_file_path)
注意:
不能用file_list获得修改的名称,因为修改后的文件名并没有被取出来,需要用os.listdir()方法重新获得。
print('修改前名称:',file_list)
批量重命名多个工作簿中多个同名工作表
假设这样一种情况,一个文件夹下面有多个excel文件,每个excel文件中有多个sheet,在不同的excel中存在同名sheet,需要把这些同名的sheet进行批量修改。
例子:
import os
import xlwings as xw
 file_path = 'D:\\TEST\\python与excel'
file_list = os.listdir(file_path)
 old_sheet_name = 'Sheet1'
new_sheet_name = '订单信息'
app = xw.App(visible=False,add_book=False)
# 第一次循环excel文件
for i in file_list:
# 排除临时文件
     if i.startswith('~$'):
         continue
     old_file_path = os.path.join(file_path,i)
     workbook = app.books.open(old_file_path)
# 第二次循环excel中sheet
     for j in workbook.sheets:
         if j.name == old_sheet_name:
             j.name = new_sheet_name
     workbook.save()
 app.quit()
上面例子中,需要先获得路径下面所有excel文件,循环这些excel文件,在每个循环中再循环读取每个sheet,找出符合条件的sheet进行重命名。