我正在尝试随机化目录中的文件名。问题是扩展名重命名后消失了。为了使新文件名具有其原始扩展名,我需要更改什么?
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")
答案 0 :(得分:2)
那很正常:如果将文件“ abc.txt”重命名为“ efg”,则删除扩展名。 os.rename
相当于bash中的mv
相反,您可以执行以下操作:
extension = path.split('.')[-1]
new_name = generate_random_name()
os.rename(path, new_name + '.' + extension)