python小工具- KML文件提取数据编辑数据后保存到新的txt文件中(使用遍历文件夹,打开文件编辑数据,保存到新的文件夹为txt文件的过程)
InSAR工作:
1)通过奥维互动地图,下载重庆市38个区县的行政区域KML文件(相当于由很多点组成的一个范围)。按照行政区命名另存成google(KML)文件与文件夹中。
2)然后将XML文件中的点数据提取出来进行编辑:
(1)将“,0”替换成‘ ’空格,在将‘,’也替换成空格。
3)然后将编辑好的数据保存到新的txt文件中,放到新的文件夹里。
ps:将此过程人工替换转换为程序替换增加了效率。
from xml.dom.minidom import parse import os import time def get_path(): path = input("输入文件路径:") if not os.path.isdir(path): print("路径不正确") return get_path() return path def parse_xml(path, file): old_path = path path = os.path.join(path, file) print('正在解析: ',path) doc = parse(path) root = doc.documentElement coordinates = root.getElementsByTagName("coordinates")[0] old_data = coordinates.childNodes[0].data new_data = " ".join([old.replace(",", " ") for old in old_data.split(",0")]) #new_data = (old.replace(',0',' ')).replace(',',' ') 效果一样 coordinates.childNodes[0].data = new_data text = file.split(".")[0] + ".txt" new_path = os.path.join(old_path,'new_xml') if not os.path.exists(new_path): os.mkdir(new_path) text_path = os.path.join(new_path,text) with open(text_path, "w+") as f: f.write(new_data) if __name__ == '__main__': file_path = get_path() files = os.listdir(file_path) for f in files: if os.path.splitext(f)[-1] == ".kml": parse_xml(file_path, f) time.sleep(0.3) #避免一次性操作导致程序卡死
PS: 这个程序可以用pyinstaller 打包成exe。发给其他人使用。打包流程在文章pyInstaller里面。https://www.cnblogs.com/Hubery-Liu/articles/12023374.html