Поиск и добавление в файл .kml с использованием Python - PullRequest
1 голос
/ 04 августа 2011

Я не очень хороший кодер. Но я действительно хочу автоматизировать то, что я должен делать на работе. По сути, у меня в Google Earth есть куча меток, показывающих дырки в муниципальной оптоволоконной сети. У меня есть несколько фотографий каждой ручной ямы, которые я хочу разместить в виде тега в файле .kml. По сути, я хочу, чтобы, когда они нажимают на метку в Google Планета Земля, она вызывает небольшой всплеск описания и показывает фотографии для каждой ручной дыры и, возможно, другую важную информацию.

Прямо сейчас у меня каждое отверстие руки помечено как TO-. Так что у ручного отверстия № 101 есть ТО-101. И я уже сделал скрипт, который переименовал все картинки в соответствии с названием. Итак, если в ручном отверстии TO-101 есть 3 изображения, они будут TO-101-1.jpg, TO-101-2.jpg, TO-101-3.jpg.

Итак, в основном я пытаюсь создать скрипт на python, который читает файл kml (что я успешно сделал). Мне нужно, чтобы найти соответствующий 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

1 Ответ

0 голосов
/ 04 августа 2011

Я предполагаю, что ваша строка if line == "<name>TO-101</name>" не работает, потому что ей, вероятно, предшествует пробел.Если вы измените его на line.strip () == ..., то это, вероятно, сработает.

Лучше всего будет реализовать обработчик XML для чтения в существующем файле, проанализировать его и добавитьновый раздел.Начните, может быть, с xml.sax

...