1

私はあまり良いコーダーではありません。しかし、私は仕事でしなければならないことを本当に自動化したいのです。基本的に、私はグーグルアースに自治体のファイバーネットワークの手穴を示すたくさんの目印を持っています。.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 line == "TO-101"をコメントアウトすると、ファイルの内容が表示されるためです。ですから、それを機能させることさえできなければ、残りの部分を機能させることはできません。私はいくつかの検索を見て、タイプpythonのサンプルコードを置き換えてみました。一部は文字列ライブラリを使用していますが、使用する必要があるかどうかはわかりません。

誰か助けてもらえますか?ありがとう

レノシス

4

1 に答える 1

0

if line == "<name>TO-101</name>"行が機能しない理由は、おそらくその前に空白があるためだと思います。それを line.strip() == ... に変更すると、おそらくうまくいくでしょう。

最善の策は、XML ハンドラーを実装して既存のファイルを読み取り、解析し、新しいセクションを追加することです。おそらくxml.saxから始めてください

于 2011-08-04T16:28:15.713 に答える