python - 在 Python 中从 csv 创建 kml

标签 python csv gps kml google-earth

我是 Python 新手。我正在处理 gps 文件。我需要将包含所有 gps 数据的 CSV 文件转换为 kml 文件。下面是我使用的 python 代码:

import csv
#Input the file name.
fname = raw_input("Enter file name WITHOUT extension: ")
data = csv.reader(open(fname + '.csv'), delimiter = ',')
#Skip the 1st header row.
data.next()
#Open the file to be written.
f = open('csv2kml.kml', 'w')

#Writing the kml file.
f.write("<?xml version='1.0' encoding='UTF-8'?>\n")
f.write("<kml xmlns='http://earth.google.com/kml/2.1'>\n")
f.write("<Document>\n")
f.write("   <name>" + fname + '.kml' +"</name>\n")
for row in data:
    f.write("   <Placemark>\n")
    f.write("       <name>" + str(row[1]) + "</name>\n")
    f.write("       <description>" + str(row[0]) + "</description>\n")
    f.write("       <Point>\n")
    f.write("           <coordinates>" + str(row[3]) + "," + str(row[2]) + "," + str(row[4]) + "</coordinates>\n")
    f.write("       </Point>\n")
    f.write("   </Placemark>\n")
f.write("</Document>\n")
f.write("</kml>\n")
print "File Created. "
print "Press ENTER to exit. "
raw_input()

我正在使用的 csv 文件可在此处获得:dip12Sep11newEdited.csv 生成的 kml 文件可在此处获得:csv2kml.kml 但是 kml 文件没有正确创建。显然,在 csv 中的某些行之后,代码无法生成更多地标。它无法迭代。您可以通过滚动到生成的 kml 文件的最后部分来查看。

谁能帮我找出代码中的错误,因为对于一些较小的 csv 文件,它可以正常工作并完全创建 kml 文件。

谢谢。

最佳答案

您没有回答上面的查询,但我的猜测是错误是您没有关闭输出文件(这会刷新您的输出)。

f.close()

关于python - 在 Python 中从 csv 创建 kml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529538/

相关文章:

python - 什么时候在 Python 的函数定义中需要 * 字符?

android - FusedLocationApi.requestLocationUpdates() 在一段时间后停止间隔请求

android - GPS 位置提供商在 Android 中为我提供了空位置

mysql - 如果值包含逗号,如何将 CSV 导入 mysql

python - 在 Tensorflow 1.2.0 中读取 CSV 文件

android - 我们可以在离线模式下使用 Google 的 Fused Location 服务吗?

javascript - 使用Python解析decodeURIComponent JSON字符串

python - 无法使用 IBPy 更改价格数据的时区

python - 为不同的响应模拟 urllib2.urlopen().read()

python - 将列表的元素打印到 .csv 文件