Python 批量刪除不需要的標籤類以及空檔案

2021-09-29 11:17:30 字數 1505 閱讀 5793

#!/usr/bin/env python2  

# -*- coding: utf-8 -*-  

"""qhy。

"""import os  

import xml.etree.elementtree as et  

origin_ann_dir = 'annos/'# 設定原始標籤路徑為 annos

new_ann_dir = 'annotations/'# 設定新標籤路徑 annotations

for dirpaths, dirnames, filenames in os.walk(origin_ann_dir):# os.walk遊走遍歷目錄名

for filename in filenames:

print(filename)

if os.path.isfile(r'%s%s' %(origin_ann_dir, filename)):#獲取原始xml檔案絕對路徑,isfile()檢測是否為檔案 isdir檢測是否為目錄

origin_ann_path = os.path.join(r'%s%s' %(origin_ann_dir, filename))#如果是,獲取絕對路徑(重複**)

new_ann_path = os.path.join(r'%s%s' %(new_ann_dir, filename))#

tree = et.parse(origin_ann_path)#et是乙個xml檔案解析庫,et.parse()開啟xml檔案。parse--"解析"

root = tree.getroot()#獲取根節點

for object in root.findall('object'):#找到根節點下所有「object」節點

name = str(object.find('name').text)#找到object節點下name子節點的值(字串),判斷:如果不是列出的,(這裡可以用in對保留列表成員進行審查),則移除該object節點及其所有子節點。

if not (name in ["shim losing","invisible pin losing"]):

root.remove(object)

flag = 0#清楚非保留完成-標誌位0

tree.write(new_ann_path)#tree為檔案,write寫入新的檔案中。

for object in root.findall('object'):#找到根節點下所有子節點

name = str(object.find('name').text)#找到子節點中name變數,判斷:如果每乙個都是要保留的,則標誌位變1,這是乙個審查。

if (name in ["shim losing","invisible pin losing"]):

flag = 1

if (flag == 0):

os.remove(new_ann_path)#所有不滿足審查:有多餘object,則用os.remove(filepath)刪除指定檔案。

#注意:改兩個地方,分別兩個有注釋的地方,乙個if,乙個if not

刪除不需要的檔案

一些不需要的 巨大的檔案或資料夾佔據了硬碟的空間,這並不少見。如果你試圖釋放計算機上的空間,那麼刪除不想要的巨大檔案效果最好。但首先你必須找到它們。編寫乙個程式,遍歷乙個目錄樹,查詢特別大的檔案或資料夾,比方說,超過100mb的檔案 回憶一下,要獲得檔案的大小,可以使用 os 模組的 os.path...

移植刪除不需要份檔案

1 進入arch這個資料夾,把出arm外的前部資料夾刪掉 2 進入board這個資料夾,把除samsung外前部資料夾刪掉 3 進入include configs,把除smdk2416.h外的所有檔案刪除。4 把頂層目錄下有乙個叫onenand ipl的資料夾刪除掉,因為沒有用到。5 進入nand ...

9 8 2 刪除那些不需要的檔案

編寫乙個程式,遍歷乙個目錄樹,查詢特別大的檔案或資料夾,比方說,超過 100mb 的檔案 回憶一下,要獲得檔案的大小,可以使用 os 模組的 os.path.getsize 將這些檔案的絕對路徑列印到螢幕上。for folder,subfolder,filenames in os.walk for ...