使用Python龟从csv文件中使用坐标绘制地图

时间:2016-03-13 10:40:48

标签: python csv turtle-graphics

我正在尝试使用turtle图形从csv文件绘制地图。

我的csv文件位于:http://textuploader.com/5nau2

我的节目:

import turtle
import csv
import math

def drawMap():
    filename = "C:\python-exercises\coordinates1.csv"

    trace = turtle.Turtle()
    trace.up()

    #scr = Screen()

    with open(filename, 'r') as csvfile:
        reader = reader = csv.DictReader(csvfile)
        for row in reader:

            x = (row[0])
            y = (row[1])
            trace.goto(x,y)
            trace.write(".")
    raw_input()
    #scr.mainloop()
drawMap()

但它没有显示任何内容,也会产生如下错误:

x = row([0])

keyError: 0

1 个答案:

答案 0 :(得分:0)

以下内容应该让您入门。您尝试读取的文件不是csv格式,因此您可以按照以下方式读取自己的行,而不是使用csv库:

import turtle
import math

def drawMap():
    filename = r"C:\python-exercises\coordinates1.csv"

    trace = turtle.Turtle()
    trace.up()

    #scr = Screen()

    with open(filename, 'r') as f_input:
        for row in f_input:
            row = row.strip('()\n').split(',')
            x = float(row[0])
            y = float(row[1])
            trace.goto(x,y)
            trace.write(".")
    raw_input()
    #scr.mainloop()
drawMap()

这将获取每一行,删除外括号和换行符并将其拆分为两列。然后将列转换为floats以供您的乌龟程序解释。

如果您不确定某些内容无效的原因,请添加一些print语句以查看发生的情况。

另外,不要忘记在文件名路径前添加r前缀,这会阻止Python尝试解释字符串中的反斜杠。