3是正式复制文件的代码,1-2只是测试路径和文件名是否正确以及写个新文件名单
1.获取路径+文件名构建新文件名
import os
import shutil
import pandas as pd
# 原文件夹的路径
source_folder = "."
# 文件要放到的根目录路径
destination_root = ".\\省"
# 遍历原文件夹及其子文件夹,将文件复制到根目录并修改文件名
for root, dirs, files in os.walk(source_folder):
for file in files:
file_path = os.path.join(root, file)
file_name = os.path.splitext(file)[0] # 获取文件名(不包括扩展名)
file_extension = os.path.splitext(file)[1] # 获取文件扩展名
# 路径+原文件名构建新的文件名
new_file_name = os.path.join(destination_root, os.path.normpath(root) + "_" + file_name) + file_extension
# 输出新文件名
print(new_file_name)
2.将新文件名放到excel_files中
import os
import shutil
import pandas as pd
# 目标文件夹的路径
source_folder = "."
# 根目录的路径
destination_root = ".\\省"
excel_files = []
# 遍历目标文件夹及其子文件夹,将文件复制到根目录并修改文件名
for root, dirs, files in os.walk(source_folder):
for file in files:
file_path = os.path.join(root, file)
file_name = os.path.splitext(file)[0] # 获取文件名(不包括扩展名)
file_extension = os.path.splitext(file)[1] # 获取文件扩展名
# 构建新的文件名,包括路径和文件名
new_file_name = os.path.join(destination_root, os.path.normpath(root) + "_" + file_name) + file_extension
# 将新文件名写到excel_files里
excel_files.append(new_file_name)
# 打印找到的 Excel 文件路径(新文件名)
for file_path in excel_files:
print(file_path)
# 所有新文件的excel名单
data = pd.DataFrame({'File Name': excel_files})
# 保存为 Excel 文件
data.to_excel('output.xlsx', index=False)
3.将文件复制到根目录路径下,并命名新文件名
import os
import shutil
import pandas as pd
# 目标文件夹的路径
source_folder = "." #当前文件夹下
# 根目录的路径
destination_root = ".\\省"
# 遍历目标文件夹及其子文件夹,将文件复制到根目录并修改文件名
for root, dirs, files in os.walk(source_folder):
for file in files:
file_path = os.path.join(root, file)
file_name = os.path.splitext(file)[0] # 获取文件名(不包括扩展名)
file_extension = os.path.splitext(file)[1] # 获取文件扩展名
# 构建新的文件名,包括路径和文件名
new_file_name = os.path.join(destination_root, os.path.normpath(root) + "_" + file_name) + file_extension
# 创建目标文件的父目录(如果不存在)
os.makedirs(os.path.dirname(new_file_name), exist_ok=True)
# 复制文件到根目录,并使用新的文件名
shutil.copy(file_path, new_file_name)