Python自动化处理办公文件:批量重命名与格式转换
Python自动化处理办公文件:批量重命名与格式转换
在日常办公中,我们经常需要处理大量文件,比如重命名、格式转换或数据提取。手动操作不仅耗时,还容易出错。Python提供了强大的库来自动化这些任务,让办公效率大幅提升。本文将通过两个实际案例,演示如何使用Python批量重命名文件和转换文件格式,适合有一定Python基础的读者。## 环境准备确保已安装Python(建议3.6及以上版本)。我们将使用os和shutil库进行文件操作,pandas库处理数据文件。如果未安装pandas,可以通过pip安装:bashpip install pandas## 案例一:批量重命名文件假设我们有一个文件夹,里面包含多个办公文档(如Word、Excel、PDF),文件名杂乱无章,需要统一重命名为“文档_序号”的格式。### 操作步骤1. 导入必要的库。2. 指定目标文件夹路径。3. 遍历文件夹中的所有文件。4. 为每个文件生成新名称并重命名。### 代码示例pythonimport os# 指定文件夹路径folder_path = “/path/to/your/folder” # 替换为实际路径# 获取文件夹中所有文件files = os.listdir(folder_path)# 过滤出文件(排除子文件夹)files = [f for f in files if os.path.isfile(os.path.join(folder_path, f))]# 按顺序重命名for i, filename in enumerate(files, start=1): # 获取文件扩展名 file_extension = os.path.splitext(filename)[1] # 构建新文件名 new_name = f"文档_{i}{file_extension}" # 重命名文件 os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_name)) print(f"重命名: {filename} -> {new_name}“)print(“批量重命名完成!”)运行此脚本后,文件夹中的文件将被重命名为“文档_1.pdf”、“文档_2.docx”等格式。注意:请先备份原始文件,以防意外覆盖。## 案例二:批量转换Excel文件为CSV格式有时我们需要将Excel文件转换为CSV格式,以便在其他系统中使用。Python的pandas库可以轻松实现这一转换。### 操作步骤1. 导入pandas库。2. 指定源文件夹(包含Excel文件)和目标文件夹(用于保存CSV文件)。3. 遍历源文件夹中的Excel文件。4. 读取每个Excel文件并保存为CSV格式。### 代码示例pythonimport osimport pandas as pd# 指定源文件夹和目标文件夹路径source_folder = “/path/to/excel/files” # 替换为实际路径target_folder = “/path/to/csv/files” # 替换为实际路径# 确保目标文件夹存在os.makedirs(target_folder, exist_ok=True)# 获取源文件夹中所有Excel文件(支持.xlsx和.xls)excel_files = [f for f in os.listdir(source_folder) if f.endswith((‘.xlsx’, ‘.xls’))]# 批量转换for filename in excel_files: # 构建完整文件路径 excel_path = os.path.join(source_folder, filename) # 读取Excel文件 df = pd.read_excel(excel_path) # 构建CSV文件名(替换扩展名) csv_name = os.path.splitext(filename)[0] + “.csv” csv_path = os.path.join(target_folder, csv_name) # 保存为CSV df.to_csv(csv_path, index=False) print(f"转换: {filename} -> {csv_name}”)print(“批量转换完成!”)此脚本将源文件夹中的所有Excel文件转换为CSV格式,并保存到目标文件夹。pandas默认读取第一个工作表,如果需要特定工作表,可以在read_excel函数中指定sheet_name参数。## 进阶技巧:处理子文件夹如果文件分布在多个子文件夹中,我们可以使用os.walk来递归遍历所有文件。以下是一个扩展示例,批量重命名所有子文件夹中的文件:pythonimport osfolder_path = “/path/to/root/folder"counter = 1for root, dirs, files in os.walk(folder_path): for filename in files: file_extension = os.path.splitext(filename)[1] new_name = f"文档_{counter}{file_extension}” os.rename(os.path.join(root, filename), os.path.join(root, new_name)) print(f"重命名: {filename} -> {new_name}") counter += 1print(“递归重命名完成!”)## 注意事项- 在运行脚本前,务必备份原始文件,避免数据丢失。- 根据实际需求调整代码,例如过滤特定文件类型或添加更复杂的命名规则。- 如果文件数量巨大,考虑添加错误处理(如try-except块)来提高脚本的健壮性。通过Python自动化处理办公文件,我们可以节省大量时间,专注于更有价值的工作。尝试修改这些示例代码,以适应你的具体场景,逐步构建自己的办公自动化工具集。
更多推荐


所有评论(0)