2013-04-27 77 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

相關問題