1、需要的头文件
import shutil
import os
import openpyxl
2、复制文件以及重命名
直接使用shutil库复制,重命名,移动即可,函数封装示例:
#source_path 为全局变量被复制文件路径
#destination_path 为全局目标目录
#new_filename 为文件新名字
def copy_and_rename_file(new_filename):
try:
# 复制文件
shutil.copy(source_path, destination_path)
# 构建新文件路径(包括新的文件名)
new_file_path = f"{destination_path}\\{new_filename}"
# 重命名文件
shutil.move(f"{destination_path}\\{source_path}", new_file_path)
# print(f"文件已成功复制和重命名为: {new_file_path}")
except Exception as e:
print(f"发生错误: {e}")
3、xlsx文件表格分开存储
思路就是将表格文件复制到目标目录,然后保留目标表格,其他表格全部删除,为什么要这样做,不直接创建一个xlsx文件然后写入表格呢?因为无法保留表格结构!这样就可以保留表格结构了,而且很简单。封装函数示例:
#file_path 为被分开的xlsx文件路径
#end_number 为别分开的xlsx文件需要分开前end_number个表格
#这里不同的表格保存在不同的路径文件夹里面了
def useCopyToSave(file_path, end_number):
try:
# 创建目标目录
for i in range(0,end_number+1):
output_directory = f'tabFile{i}\\{destination_path}'
os.makedirs(output_directory, exist_ok=True)
shutil.copy(file_path, output_directory)
outFilePath = f'tabFile{i}\\{file_path}'
workbook = openpyxl.load_workbook(outFilePath)
sheet_names = workbook.sheetnames
for j in range(0,len(sheet_names)-1) :
if(j != i):
sheet = workbook.worksheets[j]
workbook.remove(sheet)
workbook.save(outFilePath)
print(f"保存完成:{file_path}")
except Exception as e:
print(f"发生错误: {e}")