使用Python查找并添加到.kml文件

1 投票
1 回答
1140 浏览
提问于 2025-04-16 22:53

我不是一个很厉害的程序员,但我真的想自动化一些我在工作中需要做的事情。简单来说,我在谷歌地球上有一堆标记,显示的是市政光纤网络的手孔。我有几张每个手孔的照片,想把它们放到.kml文件中的标签里。也就是说,我希望当有人点击谷歌地球上的标记时,能弹出一个小窗口,显示每个手孔的照片和一些其他重要信息。

现在,我把每个手孔标记为TO-开头的,比如手孔编号101就是TO-101。我已经写了一个脚本,把所有照片重命名成对应的名字。所以,如果手孔TO-101有3张照片,它们的名字会是TO-101-1.jpg、TO-101-2.jpg和TO-101-3.jpg。

所以,基本上我想写一个Python脚本,读取.kml文件(这部分我已经成功做到了)。我需要它找到对应的TO-101或者其他手孔,在那行下面添加一行,内容是:

<description> <img src="TO-101-1.jpg"><img src="TO-101-2.jpg"></description>. 

我需要为大约5000张照片和2000个手孔做这个。

我尝试过这样做:

import string, glob, sys, os, fileinput
f = open('./hand-holes.kml','r')

while f:
line = f.readline()
if line == "<name>TO-101</name>":
print line

但我连找到并打印那一行都做不到。我知道那一行在文件里,而且路径是对的。因为如果我把if line == "TO-101"这一行注释掉,它就会显示文件的内容。所以,如果连这个都做不好,那我就更不可能把后面的部分做好。我看过几个搜索和替换的Python示例代码,其中一些用到了字符串库,但我不确定我是否需要用到它。

有人能帮我吗?谢谢

Renosis

1 个回答

0

我猜测你那行代码 if line == "<name>TO-101</name>" 不起作用的原因可能是因为它前面有空格。如果你把它改成 line.strip() == ...,那么应该就能正常工作了。

你最好的办法是实现一个 XML 处理器,来读取现有的文件,解析它,然后添加新的部分。可以先从 xml.sax 开始。

撰写回答