2011-08-04 64 views
1

我不是一个很好的编码器。但我真的想自动化我在工作中必须做的事情。基本上,我在谷歌地球上有一堆地方标志,显示了市政纤维网络的手孔。我有几张我想作为标签放在.kml文件中的手孔图片。基本上,当他们点击谷歌地球上的地标时,我想要这样做,它会显示小的描述气泡,并显示每个手孔的图片以及可能的其他重要信息。使用python查找并添加到.kml文件

现在我已将每个手孔标记为TO-。所以101号手孔有一个TO-101。而且我已经制作了一个脚本,将所有图片重命名为与名称相匹配。所以,如果手孔TO-101有3张图片,它们将是TO-101-1.jpg,TO-101-2.jpg,TO-101-3.jpg。

所以,基本上,我试图做一个读取kml文件(我已经成功完成)的python脚本。我需要它来找到相应的TO-101或.KML文件为准手孔,加上该行读取下面一行:

<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行==“TO-101”,它会显示文件的内容。所以,如果我甚至无法实现这个目标,我就没有机会让剩下的部分工作。我曾试着寻找几个搜索和替换类型的python示例代码。其中一些使用了字符串库,我不确定是否需要使用。

任何人都可以帮助我吗?由于

Renosis

+0

这看起来像一个XML的形式...如果这样解析它与lxml可能工作。 –

+0

这里有Python模块用于处理KML:http://pypi.python.org/pypi/pykml,http://www.kfilimon.com/knowledgebase/39-programming/61-kmlmodule.html,http: //code.google.com/p/simplekml/ –

+0

@Jakob Bowyer - 这是xml ...我真的只知道如何使用python,基本(picaxe for robotics),一些基本的html。我第一次尝试学习一些XML来做到这一点,但一些修改XML文档的例子是在java脚本中,我很少了解它。我真的不明白domxml或其他什么。我从来没有听说过lxml。我现在会研究它。 – renosis

回答

0

我假设你if line == "<name>TO-101</name>"行不起作用的原因是因为它可能有空格它前面。如果您将其更改为line.strip()== ...,那么它可能会工作。

最好的办法是实现一个XML处理程序来读取现有文件,解析它并添加新的部分。开始也许与xml.sax

+1

从SAX开始可能是一个糟糕的主意。 SAX是编写XML解析器的较低级系统。对于大多数需求,使用像lxml这样的现有解析器会更好。 –

+0

很高兴知道!我只熟悉'xml.sax'和'xml.dom',这对于简单的任务来说有时很乏味。 – 2011-08-05 15:00:17