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

Python循环移动文件时如何实时打印当前文件的文件名与文件大小

你要获取文件大小必须传入文件的完整绝对路径,注意要在执行shutil.move移动操作前获取大小,移动后原路径下的文件就被移除了,再调用获取大小的方法会报错。

修改后的可运行代码如下:

import os
import shutil

src = "C:\\..\\files"
dest1 = "C:\\..\\files\\images"

# 提前创建目标文件夹,不需要循环内重复判断
if not os.path.exists(dest1):
    os.mkdir(dest1)

files = os.listdir(src)

for file in files:
    # endswith支持直接传后缀元组,简化判断逻辑
    if file.endswith((".jpg", ".png", ".jpeg")):
        # 拼接得到当前处理文件的完整路径,用os.path.join避免手动拼接斜杠的兼容问题
        current_file_path = os.path.join(src, file)
        # 移动前获取文件大小,单位为字节
        file_size = os.path.getsize(current_file_path)
        # 执行移动操作
        shutil.move(current_file_path, os.path.join(dest1, file))
        # 打印需要的信息,你也可以把字节除以1024转成KB/MB做更友好的展示
        print(f"已移动文件名:{file},文件大小:{file_size} 字节")

核心修改说明

  • 用os.path.join(src, file)拼接得到文件的完整路径,作为参数传入os.path.getsize即可拿到对应文件的大小
  • 文件夹存在判断移到循环外,避免每次匹配到符合要求的文件都重复判断,提升执行效率
  • 大小获取逻辑放在移动操作前,避免文件被移走后原路径找不到文件抛出异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:04