用python脚本怎么实现:把一个文件夹里面.png文件没有固定名称,复制到另外一个文件夹按顺序命名?
环境:
python3.10
Win10
问题描述:
用python脚本怎么实现:怎么把一个文件夹里面.png文件没有固定名称,复制到另外一个文件夹按顺序命名?
解决方案:
1.新建一个脚本文件,内容如下:
import os
import shutil
from pathlib import Pathdef organize_png_files(source_dir, target_dir, prefix="image_", start_num=1, digits=4):"""将源文件夹中的PNG文件按顺序复制到目标文件夹参数:source_dir: 源文件夹路径target_dir: 目标文件夹路径prefix: 新文件名前缀(默认为"image_")start_num: 起始序号(默认为1)digits: 序号位数(默认为4,如0001)"""# 创建目标文件夹(如果不存在)Path(target_dir).mkdir(parents=True, exist_ok=True)# 获取源文件夹中所有PNG文件(按修改时间排序)png_files = sorted([f for f in Path(source_dir).glob("*.png") if f.is_file()],key=lambda x: x.stat().st_mtime # 按修改时间排序)# 计数器初始化count = start_numfor src_file in png_files:# 生成新文件名(自动补零)new_name = f"{prefix}{count:0{digits}d}.png"dst_file = Path(target_dir) / new_name# 复制文件shutil.copy2(src_file, dst_file)print(f"Copied: {src_file.name} -> {new_name}")# 计数器增加count += 1print(f"\n完成! 共处理了 {len(png_files)} 个文件")print(f"目标文件夹: {os.path.abspath(target_dir)}")if __name__ == "__main__":# 配置参数SOURCE_FOLDER = r"C:\Users\Administrator\Downloads\1" # 源文件夹路径TARGET_FOLDER = r"C:\Users\Administrator\Pictures\AI图片" # 新文件夹路径# 调用函数organize_png_files(source_dir=SOURCE_FOLDER,target_dir=TARGET_FOLDER,prefix="D_", # 文件名前缀(可选)start_num=1, # 起始编号(可选)digits=2 # 编号位数(如03)(可选))
2.执行上面脚本
查看目标文件夹,成功复制
影刀5.26.24 python3.7
里面python模块,有点不同:
import os
import shutil
from pathlib import Pathdef organize_png_files(source_dir, target_dir, prefix="image_", start_num=1, digits=4):"""将源文件夹中的PNG文件按顺序复制到目标文件夹参数:source_dir: 源文件夹路径target_dir: 目标文件夹路径prefix: 新文件名前缀(默认为"image_")start_num: 起始序号(默认为1)digits: 序号位数(默认为4,如0001)"""# 创建目标文件夹(如果不存在)Path(target_dir).mkdir(parents=True, exist_ok=True)# 获取源文件夹中所有PNG文件(按修改时间排序)png_files = sorted([f for f in Path(source_dir).glob("*.png") if f.is_file()],key=lambda x: x.stat().st_mtime # 按修改时间排序)# 计数器初始化count = start_numfor src_file in png_files:# 生成新文件名(自动补零)new_name = f"{prefix}{count:0{digits}d}.png"dst_file = Path(target_dir) / new_name# 复制文件shutil.copy2(src_file, dst_file)print(f"Copied: {src_file.name} -> {new_name}")# 计数器增加count += 1print(f"\n完成! 共处理了 {len(png_files)} 个文件")print(f"目标文件夹: {os.path.abspath(target_dir)}")# 新增符合影刀规范的main函数
def main(args):# 配置参数(建议从系统参数获取,此处保持原有配置)SOURCE_FOLDER = r"C:\Users\Administrator\Downloads\1"TARGET_FOLDER = r"C:\Users\Administrator\Pictures\AI图片"organize_png_files(source_dir=SOURCE_FOLDER,target_dir=TARGET_FOLDER,prefix="D_",start_num=1,digits=2)if __name__ == "__main__":main() # 通过main()函数启动