import os import xml.etree.ElementTree as ET def rename(path, s): dir = os.path.join(path, s) files = os.listdir(dir) for i in files: if i.endswith('xml'): i_path = os.path.join(dir, i) tree = ET.parse(i_path) root = tree.getroot() new_name = root[1].text xmlnew_name = new_name.replace(new_name.split('.')[-1], 'xml') os.rename(i_path, os.path.join(dir, xmlnew_name)) for i in files: portion = os.path.splitext(i) # 分离文件名与扩展名 if portion[1] == '.jpg' or '.png': newname = portion[0] + '.xml' os.rename(os.path.join(dir, i), os.path.join(dir, newname)) break if __name__ == '__main__': path = r'C:\Users\Duncan\Downloads' s = 'label_tiananmen' rename(path, s) conclusion 和hash相关的命名,改了就回不去了,要谨慎使用!注意文件版本保留