随机化文件名但保留扩展名

时间:2019-05-18 21:37:42

标签: python

我正在尝试随机化目录中的文件名。问题是扩展名重命名后消失了。为了使新文件名具有其原始扩展名,我需要更改什么?

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):
            newpath = os.path.join(dir, ''.join([choice(ascii_lowercase) for _ in range(randint(5, 8))]))
            os.rename(path, newpath)

randomize_files("/tmp/tset21")

1 个答案:

答案 0 :(得分:2)

那很正常:如果将文件“ abc.txt”重命名为“ efg”,则删除扩展名。 os.rename相当于bash中的mv

相反,您可以执行以下操作:

extension = path.split('.')[-1]
new_name = generate_random_name()
os.rename(path, new_name + '.' + extension)