平時遇到android中的語言資源同一檔案中有重複wording,因此寫了下面的python指令碼刪除同一xml檔案中的重複詞條。
將下面的**儲存為.py檔案,建議和要處理的xml放在同一目錄下(不放在同一目錄下生成的新xml檔案會和py檔案在乙個目錄下),
修改**中檔案路徑雙擊執行即可,需要python環境。
**有缺陷,只能刪除特定格式的檔案android apk中的xml語言資源檔案。
#!/usr/bin/python
# -*- coding: utf-8 -*-
from xml.dom.minidom import parse
from xml.dom.minidom import document
import xml.dom.minidom
import xml.dom.minidom as dom
import os
import os.path
import codecs
import glob
path='f:\python27\czktest'#xml所在目錄
files=glob.glob(path+"\*.xml")
#for parent,dirnames,filenames in os.walk(path):
# for dir in dirnames:
#print("root = ", parent, "dirs = ", dirnames, "files = ", filenames)
#for file in filenames:
# print file
for file in files:
newfile=(os.path.basename(file).split("."))[0]+".xml"
print newfile
domtree=xml.dom.minidom.parse(file)
collection=domtree.documentelement
strs=collection.getelementsbytagname("string")
i=0a=len(strs)
for str in strs:
j=ifor str1 in strs:
strname=str.getattribute("name") #string name
strcontext=str.childnodes[0].data #string 內容
str1name=strs[j+1].getattribute("name")
str1context=strs[j+1].childnodes[0].data
j=j+1
if (strname==str1name) and (strcontext==str1context):#有重複詞條生成新檔案(string name和內容都相同)
#collection.removechild(strs[j+1])
collection.removechild(str)
f = codecs.open(newfile,'w','utf-8')
domtree.writexml(f,encoding = 'utf-8')#不需要單獨在設定格式
f.close()
#print strname
if j==(a-1):
break
i=i+1
if i==(a-1):
break
處理前xml:
<?xml version="1.0" encoding="utf-8"?>end current 1
end current 3
end current 3
end current 4
end current 5
end current 6
end current 7
end current 8
end current 7
end current 8
處理後xml:
<?xml version="1.0" encoding="utf-8"?>end current 1
end current 3
end current 3
end current 4
end current 5
end current 6
end current 7
end current 8
Python操作XML檔案 XML概述
xml 可擴充套件標置語言,為html 超文字標置語言 的補充。html用於顯示資料,而xml用於傳輸和儲存資料 一.xml語法 xml檔案通常分為兩部分 檔案宣告和檔案主體 檔案宣告 位於第一行 version標明此檔案所用的標準的版本號,必須要有 encoding標明此檔案中所使用的字元型別,可...
python中讀取xml檔案的庫
對於xml如果要做乙個定義式的說明,就不得不引用w3school裡面簡潔而明快的說明 et裡面的屬性和方法不少,這裡列出常用的,供使用中備查。element物件 常用屬性 針對屬性的操作 針對後代的操作 extend subelements 增加一串元素物件作為子元素 find match 尋找第乙...
python檔案 資料夾的移動 複製 刪除 重新命名
import os.path shutil shutil包系統自帶,無需安裝 複製單個檔案 shutil.copy c a c b 複製並重命名新檔案 shutil.copyfile c a c b 複製整個目錄 備份 shutil.copytree c a c b new a 刪除檔案 os.un...