我目前正在使用pythonv2.10。我无法将数据写入csv文件。想知道是否有人能告诉我我做错了什么。我得到以下错误:"TypeError: list indices must be integers, not tuple"
-不确定如何更正此错误。另外,我想写一个csv文件,数据必须是字符串格式?你知道吗
理想情况下,我希望每一行都像: 名称,X1,Y1,X2,Y2,X3,Y3
以下是我的代码:
import csv
def main():
my_coords = open('Geo_Coords.csv', 'a')
coords = csv.reader(my_coords)
how_many = raw_input("How many Geometries do you wish to enter? ")
counter = 0
coords = []
while counter < how_many:
geometry = raw_input("Geometry Name ")
first_coordE = raw_input("1st Co-ord (Easting) ")
first_coordN = raw_input("1st Co-ord (Northing) ")
sec_coordE = raw_input("2nd Co-ord (Easting) ")
sec_coordN = raw_input("2nd Co-ord (Northing) ")
third_coordE = raw_input("3rd Co-ord (Easting) ")
third_coordN = raw_input("3rd Co-ord (Northing) ")
counter = counter + 1
my_coords.write(coords[[geometry],[first_coordE,first_coordN], [sec_coordE,sec_coordN], [third_coordE,third_coordN]] )
my_coords.close()
print my_coords
main()
好的,
coords
是csv.reader()
对象的名称how many
是字符串的名称,比如说"15"
在这里你做了一件奇怪的事情,
coords
现在是一个空列表的名称,csv.reader()
不再有引用它的名称。。。你知道吗而且上面的说法很奇怪。。。你在比较int和string!在python2中,逻辑表达式
string < integer
总是True
!你知道吗到目前为止,还不错-但是请注意,您没有修改
coords
的值,因此当您使用名称coords
时,您只是引用了一个空列表在这里,您通过寻址引用空列表的内容;此外,寻址的语法是错误的,它必须是整数或切片对象—此外,
.write(...)
方法需要一个字符串,而您正在尝试一次编写一个字符串列表。。。你知道吗这会打印出
The answerbyKoffee对我来说似乎完全足够了,所以我建议你接受它,并可能对它投赞成票。你知道吗
您的代码包含一些问题,您将coords重新分配为一个列表,在此之前它是一个
csv
对象,您使用的是csv.reader
而不是csv.writer
,我鼓励您阅读那里的文档:https://docs.python.org/2/library/csv.html也许这能帮到你,我保留你用的结构,我只是修改了一点。你知道吗
相关问题 更多 >
编程相关推荐