3

新手python查询。

使用 python 2.7.3

尝试以下代码:

#Read in from a file
BNG = csv.reader(open('BNG.csv', 'rU'), delimiter = ',')
BNG.next()

#Get the output file ready
outputFile = open('BNGandLatLon.csv', 'wb')
output=csv.writer(outputFile,delimiter=',')
output.writerow(['Lat', 'Lon', 'E', 'N'])

#Loop through the data 
for E,N in BNG:
    lat, lon = OSGB36toWGS84(float(E), float(N)) 
    output.writerow([str(lat), str(lon), str(E), str(N)])
#Close the output file
outputFile.close()

但它在 BNG 的迭代中失败了:

ValueError: too many values to unpack

我已经检查了这个错误(例如,在 Python 中一次迭代一个字符串 2(或 n)个字符)并认为它与for E, N in BNG:查找一个项目(E 和 N)而不是两个单独的EN有关。但是我在从 BNG.csv 文件中编码时遇到了真正的问题。使用过.itemzipizip一直无法正确使用。欢迎提供一些帮助。干杯

4

1 回答 1

0

正如错误所暗示的,在文件中的某个位置,有一行没有两个元素。找到该行的简单方法:

i = 0
for E, N in BNG:
    print i
    i += 1
    lat, lon = ...
    output.writerow(...)

当脚本出错时,它将打印最后一个成功的行——因此请检查文件中的下一行。

于 2013-09-22T00:21:12.183 回答