python 如何批量修改文件夹B中的文件名,使得它和另一文件夹A下的文件统一命名

python 如何批量修改文件夹B中的文件名,使得它和另一文件夹A下的文件统一命名

举例:

文件夹A:

  • DAVIS
    • groundtruth
      • boatA
        • 00000.png
        • 00001.png
        • ……
        • boat.bmf

文件夹B:

  • Result
    • DAVIS
      • boatB
        • boat_0.png
        • boat_1.png
        • ……
想要做的事情就是:将文件夹B中的boat_0.png,boat_1.png,……一 一对应改成文件夹A中的00000.png,00001.png,……,方便后续对每对图片进行比较的操作。
代码如下:
import os

davis_root_dir = '../DAVIS/groundtruth/boatA' # your root dir(文件夹A的路径)
davis_old_dir = '../Result/DAVIS/boatB' # your old dir(文件夹B的路径)
image_files = sorted(os.listdir(davis_root_dir),reverse=True) # 先按名字大小排个序,不然读取出来顺序是混乱的不固定的
image_files.remove('boat.bmf') # 文件夹A内出现的不必要文件,可以从获得的文件名中删除
old_files = sorted(os.listdir(davis_old_dir),reverse=True) # 文件夹B内的文件也按照A的规则排序

print(image_files)
print(old_files)

# 一对一对地进行名称替换
for image_file, old_file in zip(image_files, old_files):
	os.rename(os.path.join(old_path,old_file),os.path.join(old_path,image_file))
    #print(os.path.join(old_path,old_file)+'改成'+os.path.join(old_path,image_file))
回文件夹看一下,现在已经变成了:
  • Result
    • DAVIS
      • boatB
        • 00000.png
        • 00001.png
        • ……
大功告成!!!

你可能感兴趣的:(笔记,python,开发语言,文档资料)