日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

發布時間:2025/4/16 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XML文件???

xml即可擴展標記語言,它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。

里面的標簽都是可以隨心所欲的按照他的命名規則來定義的,文件名為roi.xml

312

355

第一行是XML序言,<?xml version="1.0"?>。這一行代碼會告訴解析器和瀏覽器,這個文件應該按照1.0版本的XML規則進行解析。

encoding = "utf-8"表示此XML文件采用utf-8的編碼格式。

里面的標簽都是自己命名定義的 只要符合這種包圍的命名都可以 <>> 還有注意縮進。

解析xml文件第一步:

#coding=utf-8

importxml.dom.minidom#打開xml文檔

dom = xml.dom.minidom.parse('roi.xml')

#得到xml文檔元素對象

root = dom.documentElement

獲得了對象之后就可以運用一些對元素標簽操作的語法,每一個像<>>這樣的標簽 都是一個結點,而每一個結點都有它的nodeName,nodeValue,nodeType屬性,寫法是root.nodeName?? 要注意了這些語法對大小寫都是敏感的,錯一個大小寫都是不行的,一般都符合駝峰的格式。

顧名思義? nodename 就是結點的名字 也就是標簽名,nodevalue 就是結點里面的值 或者數據? 不過這個只對文本結點有效。

第二步對XML文件進行操作,獲取其中的值:

#coding=utf-8

import xml.dom.minidom

#打開xml文檔

dom = xml.dom.minidom.parse('roi.xml')

#得到xml文檔元素對象

root = dom.documentElement

#開始操作

#獲取readSession標簽集并且繼續獲取標簽集中第一個readSession下的xCoord標簽集

roiX=root.getElementsByTagName('readingSession')[0].getElementsByTagName('roi')[0].getElementsByTagName('xCoord')

#獲取到了xCoord第一子集 的子元素的數據 將其打印 firstChild 在這里代表xCoord的文本內容 也是一個文本結點 將文本結點的數據打印

print roiX[0].firstChild.data

#還可以獲取長度

xLen = root.getElementsByTagName('readingSession').length

print xLen

getElementsByTagName(標簽名)這個函數就是用來通過標簽名字獲取

通過getElementsByTagName(標簽名)獲取到了標簽元素對象? 如果這個標簽有id屬性=“”也可以獲取這個標簽中的ID, 注意到xCoord中有一個id屬性?? 直接ID=roiX.getAttribute("id")? 就可以獲取了

這里還有很多對其操作的方法? 就不詳細介紹了。

接下來看看用Python遍歷文件:

importos

#這是我的文件目錄路徑

path = 'C:\Program Files\Java\jre-9.0.1\lib\jfr'

#將os.walk在元素中提取的值,分別放到root(根目錄),dirs(目錄名),files(文件名)中。for root, dirs, files inos.walk(path):print( "files =", files)print len(files)

非常簡單的代碼,這里我只對files文件名進行遍歷打印? 其他的用法大家看到這個語法就可以自己嘗試了。

接下來進入正題? 遍歷文件解析XML文件 提取坐標集存入文檔:

先看一部分簡單版本的XML文件,目標就是將其中X,Y坐標提取存入文件?? ? ? ?? 用途方便后來對數字圖像處理的操作

3.12

540461523

Nodule 001

5

1

6

3

3

3

4

5

5

-125.000000

1.3.6.1.4.1.14519.5.2.1.6279.6001.110383487652933113465768208719

TRUE

312

355

311

356

310

357

309

357

308

358

接下來看看PYTHON部分的代碼:

# -*- coding: UTF-8 -*-

"""

Spyder Editor

This is a temporary script file.

"""

#from __future__ import divition

import xml.dom.minidom

import os

path = 'C:\Program Files\Java\jre-9.0.1\lib\jfr'

#遍歷文件夾獲取文件名返回數組

for root, dirs, files in os.walk(path):

print( "files = ", files)

print len(files)

#通過文件名數組,不斷的打開XML文件提取坐標

for f in range(len(files)):

fpName = files[f]

#獲取XML文件的除了xml三個后綴之前的名字

nn =str(fpName[0:3])

對每個XML文件都以相同的名字打開 W的方式 沒有文件的話 會自動創建一個出來

fp = open(nn+".txt","w")

print nn

print fpName

#打開XML文檔

dom = xml.dom.minidom.parse(fpName)

#得到文檔元素對象

root = dom.documentElement

#獲取標簽集并提取坐標存入文檔

drLen= root.getElementsByTagName('readingSession').length

if(drLen != 0):

for s in range(drLen):

drText ="\n\nDR"+str(s+1)+"\n\n"

fp.write(drText)

bb = root.getElementsByTagName('readingSession')[s].getElementsByTagName('roi').length

for i in range(bb):

roiX = root.getElementsByTagName('readingSession')[s].getElementsByTagName('roi')[i].getElementsByTagName('xCoord')

xLen = root.getElementsByTagName('readingSession')[s].getElementsByTagName('roi')[i].getElementsByTagName('xCoord').length

roiY = root.getElementsByTagName('readingSession')[s].getElementsByTagName('roi')[i].getElementsByTagName('yCoord')

yLen = root.getElementsByTagName('readingSession')[s].getElementsByTagName('roi')[i].getElementsByTagName('yCoord').length

xText = "\n 第"+str(i+1)+"個roi的X坐標\n"

fp.write(xText)

#將X坐標全部存入

roiData =""

for j in range(xLen):

roiData+= str(roiX[j].firstChild.data)+","

fp.write(roiData)

yText ="\n Y坐標\n"

fp.write(yText)

for k in range(yLen) :

roiData += str(roiX[j].firstChild.data)+","

fp.write(roiData)

fp.close()

以上代碼完成后就能形成一個這樣的文件:

如果是遍歷解析的話? 大概就會形成這樣的一堆文件:

大家好我是飛機,是一個想成為全棧工程師的男人。

我覺得最美的情話就是:

我這輩子看過很多代碼,都沒有你好看。

希望以后能變成:

我這輩子寫過很多代碼,都沒有你好看。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 18禁网站免费无遮挡无码中文 | 日本天堂一区 | 久久日精品| 超碰人人爱人人 | 欧美精品v国产精品v日韩精品 | 制服丝袜手机在线 | 日本精品国产 | 国产午夜一级 | 日韩成人免费视频 | 日韩毛片高清在线播放 | 色播在线观看 | 无码人妻丰满熟妇奶水区码 | 久久国产一级 | 久久久久人妻一区精品色 | 亚洲aⅴ | 亚洲精品无码专区 | 中国挤奶哺乳午夜片 | 精品国产一区二区三区噜噜噜 | 黄色av网站网址 | 亚洲一级免费毛片 | 国产日皮视频 | 一起草av在线 | japanese中文字幕 | 欧美国产日本 | 91免费小视频 | 18国产免费视频 | 午夜免费看片 | 中文字幕天堂在线 | 精品人妻一区二区三区四区 | 久久久久久久综合 | 国产一级性生活片 | 九九九视频在线观看 | 欧美极品少妇×xxxbbb | 自拍偷拍国产精品 | 桃谷绘里香在线播放 | 色婷婷一区| 91麻豆精品国产91久久久更新时间 | 亚洲综合网址 | 国产日韩欧美精品在线观看 | 成人网免费看 | 黄色片中文字幕 | 日本国产一区二区 | 亚洲精品三级 | 九色porn | 一级黄色大片免费观看 | 亚洲国产成人一区二区 | 国产a级黄色片 | 中文字幕在线免费观看 | 一道本不卡视频 | 国语对白av | 成年人理论片 | 情五月| 免费观看污网站 | 精品视频在线一区二区 | 国产成人精品久久久 | 欧美成人久久久 | 日韩中文字幕免费视频 | 欧美日韩精品一区二区三区四区 | 蜜桃视频一区二区三区在线观看 | 亲子乱一区二区三区 | 亚洲字幕av一区二区三区四区 | 极品粉嫩国产18尤物 | 91传媒入口 | 久久电影一区二区 | 日本r级电影在线观看 | 亚洲熟妇无码一区二区三区 | 女性裸体视频网站 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 91精品国产入口 | 国产视频一二 | 亚洲一级Av无码毛片久久精品 | 成人黄色免费网 | av片免费| 中文字幕在线字幕中文 | 可以免费观看的av网站 | 中文字幕一区二区三区久久久 | 欧美色视频一区二区三区 | a网站在线 | 成年激情网 | 自拍偷拍第5页 | 快播av在线 | 日韩一级完整毛片 | 久久国产精品免费看 | 香蕉视频在线看 | 久久久亚洲精品视频 | 国产黄色在线 | 国产精品午夜久久 | jiz亚洲| 92久久| 性欧美18一19性猛交 | 秋霞99| 海角国产乱辈乱精品视频 | 性三级视频 | 欧美日本一区二区三区 | 性色浪潮 | 殴美一区二区 | 国产成人精品一区二区三区四区 | 亚洲av无码久久精品色欲 | 超碰人人人人人人人 |