微信导出保存的文件名数字含义及修正

微信导出保存的文件名通常为:mmexport1662457184000.jpg,其数字部分代表什么呢?

微信导出的文件(如 mmexport1662457184000.jpg)中,那串数字代表 Unix 时间戳(Unix Timestamp)。

具体含义如下:

  • 代表精确时间:这串数字记录了你将图片/视频保存到手机本地那一刻的精确时间。
  • 计算起点:它表示从 1970年1月1日 00:00:00 UTC 到保存时刻所经过的毫秒数。例如 1662457184000 对应的大致是 2022年9月6日 左右。

至于前缀 mmexportmm 是 Micro Message(微信)的缩写,export 是“导出”的意思。

💡 如何转换?

  • 可以直接搜索“Unix时间戳转换”在线工具,输入这13位数字(注意选“毫秒”级)即可换算成具体日期。
  • 或直接下载修改工具微信导出文件日期更名.exe放在需要重命名的照片文件夹中运行即可。地址 https://wwbur.lanzoul.com/iYDWD3xs3gfe
    密码:ha3u
  • 下面这段Python代码可以批量处理。考虑到微信导出的文件名是13位毫秒级时间戳,我写成精确到秒的格式,并自动处理重名冲突。

将以下代码保存为 微信导出文件日期更名.py 文件,放在需要重命名的照片文件夹中运行即可。

import os
import re
from datetime import datetime

# 获取脚本所在的文件夹路径
folder_path = os.path.dirname(os.path.abspath(__file__))

# 匹配规则:mmexport + 13位数字 + 扩展名
pattern = re.compile(r'^mmexport(\d{13})(\..+)$')

rename_count = 0
skip_count = 0

for filename in os.listdir(folder_path):
    match = pattern.match(filename)
    if not match:
        continue  # 不是目标文件则跳过

    timestamp_ms = match.group(1)   # 13位毫秒数
    extension = match.group(2)      # 包含点,如 .jpg

    # 将毫秒转为秒,再转为本地时间
    dt = datetime.fromtimestamp(int(timestamp_ms) / 1000.0)
    # 格式化为标准日期(可自定义,例如 2026-07-21_14-30-00)
    date_str = dt.strftime('%Y-%m-%d_%H-%M-%S')
    
    new_filename = f"mme-{date_str}{extension}"

    # 防止改名后与自己相同
    if new_filename == filename:
        skip_count += 1
        continue

    # 若目标文件名已存在,则加上序号防止覆盖
    if os.path.exists(os.path.join(folder_path, new_filename)):
        base = f"mme-{date_str}"
        counter = 1
        while True:
            test_name = f"{base}_{counter}{extension}"
            if not os.path.exists(os.path.join(folder_path, test_name)):
                new_filename = test_name
                break
            counter += 1

    # 执行重命名
    os.rename(
        os.path.join(folder_path, filename),
        os.path.join(folder_path, new_filename)
    )
    print(f"✅ {filename} -> {new_filename}")
    rename_count += 1

print(f"\n处理完成!共重命名 {rename_count} 个文件,跳过 {skip_count} 个。")

关键细节说明

  1. 时区处理datetime.fromtimestamp 会转换为你电脑当前设置的时区时间(如北京时间),不需要手动加减8小时。
  2. 重名防覆盖:如果同一秒内有多张照片,代码会自动在日期后面加 _1_2 等序号。
  3. 日期格式:目前是 年-月-日_时-分-秒,如果你想改成紧凑型(如 20260721_143000),只需将代码中的 '%Y-%m-%d_%H-%M-%S' 改为 '%Y%m%d_%H%M%S' 即可。

运行前建议先备份几个文件测试一下,确认无误再处理全部。如果遇到文件名包含特殊字符的情况,这段代码也能安全跳过。😊

posted on 2026-07-21 10:06  igaoyuan  阅读(121)  评论(0)    收藏  举报

导航