在python

时间:2018-05-28 16:09:16

标签: python rename

[PYTHON] 大家好,我有一个问题需要解决。我有两个像这样的文件夹

文件夹1:

  • 05.xml
  • 06.xml
  • 07.xml
  • 08.xml

文件夹2:

  • 01_2500.jpeg
  • 02_2501.jpeg
  • 03_2502.jpeg
  • 04_2503.jpeg
  • 05_2504.jpeg
  • 06_2505.jpeg
  • 07_2506.jpeg
  • 08_2507.jpeg

我需要重命名文件夹1,如下所示:

  • 2504.xml
  • 2505.xml
  • 2506.xml
  • 2507.xml

我该怎么办?我好几天都在尝试这个。显然这是一个简化的例子,因为实际上有数千个文件要重命名。

我认为我可以对文件夹2使用拆分功能然后应用if,但我不能。

1 个答案:

答案 0 :(得分:2)

您可以从文件夹2中的文件创建查找,然后通过迭代文件夹1的内容来应用os.rename。从文件夹存储中的文件创建的字典将前导数字存储为其键,并且尾随四位数作为值运行:

import os, re
renames = dict(re.findall('\d+', i) for i in os.listdir('/folder2'))
for i in os.listdir('/folder1'):
   os.rename(i, re.sub('\d+(?=\.xml)', lambda x:renames[x.group()], i)