我正在尝试将两个列表写入csv文件。我尝试了这里列出的几个解决方案:How to write data from two lists into columns in a csv? izip解决方案对我不起作用。当我尝试它时,我收到了这个错误:
ImportError: cannot import name 'izip'
我能够导入itertools,而不是izip。
然后我尝试了zip解决方案,但由于某种原因,它最终删除了原始csv文件的内容。原始文件存在,但现在没有任何内容。这绝对不是我想要的!
这就是我现在所拥有的:
for eas,nor in zip(xUTM, yUTM):
cor=(utm.to_latlon(eas, nor, 20, 'Q'))
treecor.append(cor)
l=list(map(list,zip(*treecor)))
lat=l[0]
lon=l[1]
我想创建一个原始文件的副本,并添加一个' lat'专栏和一个' lon'列到副本的末尾(按此顺序)。我到目前为止尝试过的解决方案是否有替代方案?
谢谢!
答案 0 :(得分:0)
您可以使用zip和生成器编写treecor来应用映射功能。这通常比fdopen()
函数更受欢迎。
map
或完全跳过该步骤,只根据需要计算纬度/经度。由于您要附加列,因此需要完全覆盖csv文件。这对于您成功重命名的临时文件最好。使用zip将csv中的行与utm列表中的项组合在一起:
treecor = [utm.to_latlon(eas, nor, 20, 'Q') for eas, nor in zip(xUTM, yUTM)]
答案 1 :(得分:0)
我无法获得我发现的任何解决方案。最后一位朋友和我能够想出这个:
with open('cord_out.tsv','w')as fh:
for i in treecor:
print(i[0],'\t',i[1],file=fh)