使用python对比两个目录下的文件名差异
生活随笔
收集整理的這篇文章主要介紹了
使用python对比两个目录下的文件名差异
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在做深度學習圖像識別相關的項目,經常會使用到標注工具對圖像進行標注,然后會在對應文件夾下生成文件名相同的標簽文件,比如000023.jpg,標注后會生成000023.xml,或都000023.txt文件,但有時候會漏標或者樣本不對時暫時不標注的,那在要訓練時一個個文件去對比兩個目錄下的文件名,當文件有上萬的情況下,人工對比是不現實的。
代碼
下面的python是做兩個目錄交差對比,分別輸出各兩個不同的結果,如果想刪除沒有對應圖像,把注釋打開就可以了。用是python版本是2.7.
# -*- coding: utf-8 -*- import osroot_path = r'/home/linux/caffe/caffe_ssd/data/VOCdevkit/VOC2007/'def contrastDir(file_dir):jpg_list = []xml_list = []for root, dirs, files in os.walk(file_dir+'JPEGImages'):for file in files:if os.path.splitext(file)[1] == '.jpg':jpg_list.append(os.path.splitext(file)[0])for root, dirs, files in os.walk(file_dir+'Annotations'):for file in files:if os.path.splitext(file)[1] == '.xml':xml_list.append(os.path.splitext(file)[0]) #對比xml與jpgdiff = set(xml_list).difference(set(jpg_list)) print(len(diff))for name in diff:print("No corresponding image file", name + ".xml") # 對比jpg與xmldiff2 = set(jpg_list).difference(set(xml_list)) print(len(diff2))for name in diff2:print("No corresponding XML file", name + ".jpg") #刪除沒有的對應xml的圖像 # os.remove(file_dir+'JPEGImages/'+ name+'.jpg')return jpg_list,xml_listif __name__ == '__main__':contrastDir(root_path)總結
以上是生活随笔為你收集整理的使用python对比两个目录下的文件名差异的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV图像增强(一)——多尺度视网
- 下一篇: OpenCV图像增强(二)——Retin