You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python仅依据文件名前4个字符将文件移动到指定文件夹

按文件名前4字符批量移动文件的Python实现

原代码存在的问题

  • 循环语法错误:for BLTD*.txt in get_files 不符合Python语法规则,不能直接用通配符遍历文件列表
  • 路径参数错误:os.replace 和 shutil.move 需要传入具体文件的完整路径,而非文件夹路径
  • 缺少前缀判断逻辑:没有实现提取文件名前4字符并筛选的核心功能

修正后的实现代码

import os
import shutil

# 配置源文件夹与目标文件夹路径
source_dir = r'C:\Users\SHall\OneDrive\Desktop\Test'
dest_dir = r'D:\BTLD'

# 确保目标文件夹存在,不存在则自动创建
os.makedirs(dest_dir, exist_ok=True)

# 遍历源文件夹内的所有条目
for filename in os.listdir(source_dir):
    # 拼接文件的完整源路径
    source_file = os.path.join(source_dir, filename)
    # 跳过子文件夹,仅处理文件
    if not os.path.isfile(source_file):
        continue
    # 提取文件名的前4个字符(文件名长度不足4时取全部字符)
    file_prefix = filename[:4]
    # 判断前缀是否符合目标条件(此处以'BLTD'为例)
    if file_prefix == 'BLTD':
        # 拼接文件的完整目标路径
        dest_file = os.path.join(dest_dir, filename)
        # 执行文件移动操作
        shutil.move(source_file, dest_file)
        print(f"已完成移动: {filename}")

代码关键说明

  • os.makedirs(dest_dir, exist_ok=True):提前创建目标文件夹,避免因文件夹不存在导致移动失败
  • os.path.isfile(source_file):过滤掉源文件夹中的子文件夹,只处理文件类型
  • filename[:4]:提取文件名(包含扩展名)的前4个字符,实现按前缀筛选的核心逻辑
  • shutil.move:跨磁盘移动文件也能稳定运行,比os.replace兼容性更强

扩展说明

如果需要匹配多个目标前缀,可将前缀存入列表后判断:

target_prefixes = ['BLTD', 'ABCD', 'XYZ1']
if file_prefix in target_prefixes:
    # 执行移动操作

内容的提问来源于stack exchange,提问作者INegativeI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 03:48:24