2011-08-04 61 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