Я не уверен, вероятно, ответ здесь где-то здесь уже, но из-за моего «noob-status» мне очень сложно понять, действительно ли у заданных вопросов есть что-то делать с моей проблемой и поверьте мне, я попытался найти решение со вчерашнего утра, и мне нужно сделать завтра, так что вот я иду:Правильно форматирование списка с помощью python
Мне нужно написать скрипт с Python27, который автоматически преобразует данный CSV- файл с координатами в KML-файл, который можно использовать для google earth.
Это то, что я до сих пор:
# imports the module urllib2 to open URLs
import urllib2
# ask for URL and load it
# Bsp.: http://koenigstuhl.geog.uni-heidelberg.de/~bhoefle/geoscripting/GPS_track_HD_Bodensee.csv
URL = raw_input("Enter the URL to your CSV-file: ")
response = urllib2.urlopen(URL)
html = response.read()
#print html
Zielverzeichnis = raw_input("Enter the path where you would like to store the file:")
Dateiname = "/" + raw_input("Name your file:") + ".kml"
#print Dateiname
#print Zielverzeichnis
#print Zielverzeichnis + Dateiname
Tabelle = Zielverzeichnis + Dateiname
fileobj = file(Tabelle, "w")
with open(Tabelle, "w") as writefile:
writefile.write(html)
#import csv
#data = csv.reader(open(Tabelle), delimiter = ',')
f = open(Tabelle, 'w')
f.write("<?xml version='1.0' encoding='UTF-8'?>\n")
f.write("<kml xmlns='http://www.opengis.net/kml/2.2'>\n")
f.write("<Placemark>\n")
f.write("<name>" + Dateiname +"</name>\n")
f.write("<MultiGeometry>\n")
f.write("<LineString>\n")
f.write("<coordinates>\n")
html2 = html.split()
Koordinaten = html2[3:1003]
#Koordinaten.insert([n*30], ]])
f.writelines(Koordinaten)
f.close()
#with open(Tabelle) as rfile:
# lines = rfile.readlines()[1:1001]
# print lines
# linevalues = lines.split(",")
# firstval = float(linevalues[0])
# secondval = float(linevalues[1])
# print firstval, secondval
материал в конце есть/были только идеи о том, как ее решить. Если вы выполните скрипт, вы увидите, что в файл вставляются первые координаты 1000, но как я разделяю три значения для lat/long/elevation и помещаю их в порядок, необходимый для google earth (long/lat/elevation) ? Я был бы очень рад услышать от вас скоро! Благодаря
EDIT: Прямо сейчас это выглядит так:
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Placemark>
<name>/Testfile.xml</name>
<MultiGeometry>
<LineString>
<coordinates>
49.40336870,8.681468410,117.049.40212450,8.680264000,118.049.40083450,8.678729290,112.049.39974100,8.676724960,115.049.39909890,8.675406580,113.049.39823150,8.673896850,111.049.39741020,8.672800160,111.049.39693920,8.671590970,111.049.39594540,8.669930680,110.049.39212020,8.665451860,111.049.38969310,8.662548160,110.049.38685910,8.658890010,109.049.38423320,8.655726650,110.049.37958570,8.650085210,110.049.37725820,8.647567880,108.049.37616580,8.646088460,110.049.37584310,8.646435030,109.049.37551880,8.646217030,110.049.37448140,8.645122860,107.0
И мне нужно, чтобы она выглядела так:
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Placemark>
<name>/Testfile.xml</name>
<MultiGeometry>
<LineString>
<coordinates>
49.40336870,8.681468410,117.0
49.40212450,8.680264000,118.0
49.40083450,8.678729290,112.0
49.39974100,8.676724960,115.0
49.39909890,8.675406580,113.0
49.39823150,8.673896850,111.0
49.39741020,8.672800160,111.0
49.39693920,8.671590970,111.0
49.39594540,8.669930680,110.0
49.39212020,8.665451860,111.0
49.38969310,8.662548160,110.0
49.38685910,8.658890010,109.0
49.38423320,8.655726650,110.0
49.37958570,8.650085210,110.0
49.37725820,8.647567880,108.0
49.37616580,8.646088460,110.0
49.37584310,8.646435030,109.0
49.37551880,8.646217030,110.0
49.37448140,8.645122860,107.0
С одной разницей: значения 49.xy (широта) и 8.xy (долгота) также должны быть изменены.
Ваш закомментирована код почти нет. 'lines' - это список, поэтому вы не сможете выполнить' linevalues = lines.split (",") '. Вам нужно будет использовать цикл 'for' для итерации по каждому элементу в' lines', а затем разделить на ',', а затем записать вывод этого 'split' в любом порядке, в котором вы нуждаетесь. –
Спасибо за ваш быстрый повтор, но я просто не понимаю его сейчас, пробовал его с полчаса снова, и это то, что я получил до сих пор, хотя я уверен, что это бесполезно: 'для линий в Koordinaten: f.write («% s»% строк) lines.split (,) ' очевидно, что это неправильно. – ottittii
Можете ли вы привести пример нескольких строк из «Tabelle» и ваших ожидаемых строк в ваш новый файл в вашем вопросе. –