【问题标题】:Using glob and os to put files into folders & rename?使用 glob 和 os 将文件放入文件夹并重命名?
【发布时间】:2014-03-07 11:52:55
【问题描述】:

我有一个巨大的文件夹,其中包含大约 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 获取列表并循环遍历它们,但它似乎不正确。

【问题讨论】:

    标签: python python-2.7 glob


    【解决方案1】:

    使用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))
    

    【讨论】:

      猜你喜欢
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2017-12-12
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      相关资源
      最近更新 更多