實用小程式(1)之讀取xml並儲存為txt文字
實用小程式(1)之xml轉txt
這段時間在看學習yolo系列演算法,在訓練自己的訓練集時,需要讀取標註的xml檔案的類別並儲存為txt文字格式,在網上找了很久也沒有發現相關的程式碼,所以就自己寫了一個需要的同學自取啦。
(1)獲取訓練圖片的字首名並儲存為txt
import os
import random
xmlfilepath = 'D:\\project\\windows_yolov3\\train_img\\train_image' # 這裡寫自己圖片儲存的路徑
txtsavepath = 'D:\\project\\windows_yolov3\\train_img' #生成的txt文字儲存路徑
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
ftrainval = open('name.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
ftrainval.write(name)
ftrainval.close()
(2)讀取標註的xml檔案類別
import xml.dom.minidom as xmldom
import os
names_file_path = os.path.expanduser("./name.txt")
with open(names_file_path) as f:
name_file = f.readlines()
name_file = [int(x.strip('\n')) for x in name_file]
#print(name_file)
length = len(name_file)
#print(length)
for i in range(length):
xml_filepath = os.path.abspath("./train_img/train_label/" + str(name_file[i]) +".xml")
# xml_filepath=os.path.abspath("V5-13.xml")
# 得到檔案物件
obj = xmldom.parse(xml_filepath)
# 得到元素物件
annotation = obj.documentElement
objects = annotation.getElementsByTagName("object")
new_txt_name = 'name_attributions.txt'
for object in objects:
name = object.getElementsByTagName('name')[0]
with open(new_txt_name,'a') as f:
f.write(name.childNodes[0].data)
f.write(' ')
#f.write('\r\n')
#print(name.childNodes[0].data)
with open(new_txt_name, 'a') as f:
f.write('\r\n')
歡迎大家討論交流哇!
相關文章
- 利用動態規劃實現最短路徑和(適合小白看,看不懂你打我,附JS程式碼和C程式碼實現)
- 三、金融業企業服務匯流排鏈路追蹤監控分析平臺的建設實踐--CASSANDRA儲存方案
- Java網路程式設計--UDP傳送接收資料
- golang gopsutil 程式 系統硬體資訊 獲取
- 如何在matlab程式碼中加一層分隔?
- 043-socket程式設計傳送GET請求
- 電力系統分析(第二版)Hadi Saadat matlab 程式二(教材搬運)
- 程式的定義、組成、組織方式、特徵
- 《Java程式設計邏輯》第3章 類的基礎
- html文字相關標籤
- 程式導向與物件導向
- 程式碼模型組織方式
- python的pip快速安裝程式碼
- [練手]CantoneseCool 一個能說廣東話的小程式。
- 遊戲程式設計模式學習:第一章命令模式
- Git程式碼託管常用命令
- 基於Java的Socket類Tcp網路程式設計實現實時聊天互動程式(一):QQ聊天介面的搭建
- 編寫程式實現 f(n)=f(n-1)+f(n-2) (f(1)=1 和 f(2)=2 )函式。
- 關於Static程式碼塊、匿名程式碼塊、構造器的小擴充