python刪除txt中不存在的路徑

2021-08-21 04:08:03 字數 1406 閱讀 2067

這段時間將caltech資料集轉換成voc格式的的時候,發現存在一丟丟問題,就是將annotations資料夾裡面的xml轉換為txt後,訓練的時候才發現被標註的幾張不存在資料集中

,太多,一張紙檢查不好操作,所以就寫了個簡單的py檔案來檢查一下txt檔案中哪些路徑不存在,然後重新生產乙個txt檔案(裡面儲存的是路徑和bbox的資訊)即可

下圖是txt檔案儲存的內容,包括路徑和bbox的資訊

所以我們看到,路徑和bbox之間有乙個空格,所以給我們創造了乙個利用slpit()方法的機會

# 

分別檢查三個

txt檔案:

2007_train.txt,2007_test.txt,2007_val,txt

sets=[('2007'

, 'train'), ('2007'

, 'val'), ('2007'

, 'test')]

import os

def

convert_annotation(year, file_id):

# 開啟相應的

txt檔案

with

open("./{}_{}.txt".format(year,file_id)) as f:

# 對整個檔案進行讀取,將每一行作為乙個元素以列表的格式返回

all = f.readlines()

# for

迴圈歷遍每乙個元素

for i in all:

# split()

方法裡面不填寫表示按空格切割,返回乙個列表

a = i.split()

# 獲取第乙個元素,也就是獲取對應的路徑

path_test = a[0]

# os.path.exist(path)

判斷路徑是否存在,存在返回

true

,否則返回

false

if os.path.exists(path_test):

# 如果路徑存在則以寫入的形式開啟乙個

txt檔案

with

open("./{}_{}_update.txt".format(year,file_id),

"a") as f:

# 重新寫入當前元素

f.write(i)

f.close()

f.close()

# 歷遍

2007_train.txt,2007_test.txt,2007_val,txt

for year, file_id in sets:

convert_annotation(year,file_id)

the end.

存在還是不存在

又是一片安靜中醒來,又是乙個陰天,地面很濕潤,忽然有點秋天的感覺。昨天一天都進不來我的部落格,晚上剛進來寫了一篇小文緊接著就又是 找不到伺服器 到了深夜,終於可以上了,覺得自己長舒了一口氣。部落格依賴症。不過寫了半年多而已。依賴,一種要警惕的情緒,很容易使人沉迷,找不到自己。慌慌張張的日子終於過去了...

存在與不存在

在乙個幽靜的小山莊,有個人叫王四,孤僻,二十多歲,長相不美不醜,是那種扔在人群裡再也找不出來的那種人。父母不詳,從小靠村裡人養大。王四長大了。王四一遍又一遍的問村裡人,他的父母去 了?沒有人知道。當頻繁的問詢過於頻繁的時候只能讓人生厭,以至於後來他再去詢問的時候,大家都說他沒有父母。那我是 來的呢?...

xencenter中如何刪除不存在池中的儲存

新增新硬碟 xe sr create name label data shared false device config device dev sdb type lvm 如何刪除在xencenter裡無法刪除的sr儲存 因為pbd已經連線的緣故,我們無法直接使用sr destroy刪除sr。首先我...