2013-04-27 43 views
-2

我需要在csv文件中写入前73行,然后将“0”分配给坐标列中的空白,但我不确定需要对其进行的更改该脚本正确地将字符串“0”分配给文件中的36和37列。将csv文件中的空白坐标设置为0 python

while line:  
    lineList = line.split(',') 
    newList = lineList[:72] 
    if 36 or 37 in newList == "": 
     36 = "0" 
     37 = "0" 
    line = ",".join(lineList) 
    line = line + '\n' 
    colFinal.write(line) 
+1

这里有很多逻辑错误。 'while line:'should expect to loop forever,and'如果newList == 36或37中没有任何意义,但无论如何总是计算为True,然后尝试将值赋给整数文字是非法的。 – geoffspear 2013-04-27 21:30:30

+0

我很新的python,所以我不知道需要更正哪些更正 – user2316620 2013-04-27 21:32:53

回答

1

在尊重的基础上,很难说出你在代码中想要做什么。所以我写了一些代码,将工作,并会做我想要的东西:

import csv 

fcsv = open('c:/temp/laststation.csv', 'r') 
creader = csv.reader(fcsv) 

fout = open('c:/temp/outfile.csv', 'wb') 
cwriter = csv.writer(fout, dialect='excel') 

for i, lst in enumerate(creader): 
    # break out of loop after handling 73 lines 
    if i > 72: 
     break 

    lst[36] = lst[36] or '0' 
    lst[37] = lst[37] or '0' 

    cwriter.writerow(lst) 

fcsv.close() 
fout.close() 

标准库是你的朋友。 csv模块读取和写入csv文件,并为您处理所有丑陋的边缘案例。枚举函数会计算你的线,当你到达你想要处理的最后一行时,你可以停下来。

+0

好极了!非常感谢你! – user2316620 2013-04-27 22:17:27

相关问题