2011-08-04 11 views
1

私は非常に良いコーダーではありません。しかし、私は実際に職場でやるべきことを自動化したいと思っています。基本的には、Google Earthに地方自治体の繊維ネットワークの手穴を表示する目印の束があります。 .kmlファイルにタグとして配置したい各ハンドホールの写真がいくつかあります。基本的には、私はGoogle Earth上のplacemarkerをクリックすると、小さな説明のバブルが表示され、それぞれのハンドホールの写真やその他の重要な情報が表示されます。Pythonを使用して.kmlファイルを検索して追加する

今、私はそれぞれの手穴にTO-とラベル付けされています。したがって、101番のハンド・ホールはTO-101を持っています。そして、私はすでに名前に一致するようにすべての画像の名前を変更したスクリプトを作成しました。 TO-101に3枚の写真がある場合、TO-101-1.jpg、TO-101-2.jpg、TO-101-3.jpgとなります。

基本的に、私はkmlファイルを読み込む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行== "TO-101"をコメントアウトすると、ファイルの内容が表示されるからです。だから私がそれを働かせることさえできなければ、残りの部分を働かせることはできません。私は検索のいくつかの部分を見て、タイプのPythonの例のコードを置き換えてみました。その中には文字列ライブラリを使用するものがあります。使用する必要があるかどうかわかりません。

誰でも手伝ってもらえますか?おかげ

Renosis

+0

これはxmlの形式のようです...もしそうなら、lxmlで解析すると動作するかもしれません。 –

+0

KMLで作業するためのPythonモジュールがあります。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)、いくつかの基本的な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'だけに精通していましたが、時には単純なタスクには面倒です。 –

関連する問題