使用glob和os将文件放入文件夹并重命名?

2024-10-03 23:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的文件夹,其中包含大约5000个文件,其名称类似于:

Rop OE[1932].exo
Make Dat[1932].edd
Back W'E[1934].exl
Pack Trees Pop[1944].exl
R.P END[1962].exl
Original CL0[1998].exp

我希望它为所有这些文件创建文件夹,名称来自上面的文件(不带扩展名),如下所示

Rop OE[1932]
Make Dat[1932]
Back W'E[1934]
Pack Trees Pop[1944]
R.P END[1962]
Original CL0[1998]

然后重命名所有文件以删除看起来是一年的文件,使其显示如下

Rop OE.exo
Make Dat.edd
Back W'E.exl
Pack Trees Pop.exl
R.P END.exl
Original CL0.exp

然后将所有要放入其关联文件夹中的文件(同名)

最好的方法是什么,我尝试使用glob来获取列表并循环浏览所有列表,但似乎没有正常工作。你知道吗


Tags: 文件文件夹名称makebackpoptreespack
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:23

使用globosshutilre库:

import glob
import shutil
import os
import re

root = 'path/to/folder/*'

for f in glob.glob(root):
    dirname = f.rsplit('.')[0]
    os.mkdir(dirname)
    filename = os.path.split(re.sub(r'\[\d+\]', '', f))[-1]
    shutil.move(f, os.path.join(dirname, filename))

相关问题 更多 >