You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

随机重命名目录文件时保留原扩展名的修改方案

解决文件名随机化时丢失扩展名的问题

嘿,这问题很容易搞定!你的代码现在只生成了随机的纯文件名,完全没考虑原文件的扩展名——这就是为啥扩展名丢了。咱们只需要两步就能修复它:

  1. 把原文件名拆成主名称扩展名两部分
  2. 把随机生成的新主名称和原扩展名拼在一起

Python 的 os.path.splitext() 函数就是干这个的,它会把文件名分成一个包含主名和扩展名的元组(比如对 document.pdf,会返回 ("document", ".pdf");如果是无扩展名的文件,扩展名部分就是空字符串,也不用担心出错)。

下面是修改后的完整代码,我标出来了改动的核心部分:

from string import ascii_lowercase
from random import choice, randint, random
import os

def randomize_files(dir):
    for f in os.listdir(dir):
        path = os.path.join(dir, f)
        if os.path.isfile(path):
            # 新增:拆分原文件名的主名和扩展名
            name, ext = os.path.splitext(f)
            # 生成随机主名称,再拼接原扩展名
            random_name = ''.join([choice(ascii_lowercase) for _ in range(randint(5, 8))])
            newpath = os.path.join(dir, random_name + ext)
            os.rename(path, newpath)

randomize_files("/tmp/tset21")

这样运行之后,每个文件的新文件名都会保留原来的扩展名啦——比如原来的 report.txt 会变成类似 kqzxm.txtimage.png 会变成 plrvsxd.png,完全没问题!

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

火山引擎 最新活动