簡體   English   中英

按遞增順序重命名多個不同擴展名的同名文件

[英]Rename multiple file of different extension with the same name in the incremental order

我有多個文件夾,其中的文件命名如下:

   1500001.jpg
   1500001.xml
   1600002.jpg
   1600002.xml
   9876543.jpg
   9876543.xml

如您所見,我有一個 jpg 文件及其對應的 xml 文件,文件名相同。 我想將所有這些文件重命名如下:

   ID_0001.jpg (1500001.jpg converted to ID_0001.jpg)
   ID_0001.xml (1500001.xml converted to ID_0001.xml)
   ID_0002.jpg (1600002.jpg converted to ID_0002.jpg)
   ID_0002.xml (1600002.xml converted to ID_0002.xml
   ID_0003.jpg (9876543.jpg converted to ID_0003.jpg)
   ID_0003.xml (9876543.xml converted to ID_0003.xml)

我是 Python 的新手,並且已經編寫了一些代碼來重命名具有不同擴展名的文件,但無法將其擴展為以增量順序保持其相應文件的相同文件名,例如 ID_0001.jpg、ID_0001.xml 等。

import os
_src = "path/to/directory"
_ext_jpg = ".jpg"
_ext_xml = ".xml"

for i,filename in enumerate(os.listdir(_src)):
    if filename.endswith(_ext_jpg):
        os.rename(filename, _src+'ID_' + str(i)+_ext_jpg)

    else:
        os.rename(filename, _src+'ID_' + str(i)+_ext_xml)

With this code, the increment happens for the all the files like ID_0001.jpg, ID_002.xml, ID_003.jpg, ID_004.xml and actually it should be like ID_0001.jpg, ID_0001.xml, ID_0002.jpg, ID_0002.xml,等等

獲得文件名后,重命名xmljpg文件:

import os
_src = "path/to/directory"
_ext_jpg = ".jpg"
_ext_xml = ".xml"

for i,filename in enumerate(os.listdir(_src)):
    if filename.endswith(_ext_jpg):
        os.rename(filename, _src+'ID_' + str(i)+_ext_jpg)
        os.rename(filename[:-4]+_ext_xml, _src+'ID_' + str(i)+_ext_xml)

使用glob

前任:

import os
import glob
_src = "path/to/directory"

for i,filename in enumerate(glob.glob("{}*.jpg".format(_src))):
    file = os.path.basename(filename)
    f, ext = os.path.splitext(file)
    os.rename(filename, os.path.join(_src, 'ID_' + str(i)+ext))   #Rename .jpg
    os.rename(os.path.join(_src, "{}.xml".format(f) , os.path.join(_src, 'ID_' + str(i)+".xml"))  #Rename .xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM