[問題] file.write 失效

作者: jakeasa123 (啊斑斑)   2016-09-22 20:34:04
如題。
最近在寫一個程式,他的功能是比對兩個.csv文件中的內容,在特定欄位中有所關係的則是需要的,將該內容抓出來並記錄到新的.csv檔中。
但是不知道為什麼,在寫檔(file.write)的部分,總是不會執行,但如果把主要的判斷部分移開卻會執行……在想可能是我判斷的部分或記錄資料的部分有出問題,但找了一段時間都找不到。
之前有寫過一個類似功能但找尋資料和判斷方式略有不同的程式,可以正常運作,此篇也是沿用那個程式的程式碼。

程式碼:
http://paste.ofcode.org/TtW9zF24BLKK49puM226UF
↑ 短網址:https://goo.gl/fg1c09
程式碼(前一個可正常運作的程式):
http://paste.ofcode.org/F2TwhWpWCH7yYirFy53GYg
↑ 短網址:https://goo.gl/sTJ77g

目前,出問題的那個程式能否正常判斷還不知道,但在判斷之前的:
wFile.write("cardNo,in_tTime_1_hr,in_tTime_1_min,out_tTime_2_hr,out_tTime_2_min,routeNo_1,routeNo_2,")
wFile.write("entryStationID_1,exitStationID_1,entryStationID_2,exitStationID_2,D_1,D_2,waitTime,")
wFile.write("totalDis,totalTime\n")
這一段的write就已經失效了,而後面用於確認的print("-1")則會正常運作,甚至是兩個while中加入print也能正常運作。
倘若把while整個移除,則上述的write才會正常加入檔案中……
我花了很多時間尋找問題,但都沒能找到問題點,希望有前輩可以指點一下Q_Q
(我知道這個迴圈會重覆抓到同樣的結果,但急著抓出結果暫時不打算修正,後續會用Excel清掉重覆出現的結果)
作者: Typebrook (Pham)   2016-09-23 00:43:00
你的寫法,若csv檔第一欄是空白,會提早跳出while loop然後也要記得將fileALL.close()加入loop的結尾
作者: jakeasa123 (啊斑斑)   2016-09-23 16:43:00
先謝謝前輩回應。兩個資料csv檔都確定有資料,除非前輩是指要加入資料的wFile指向的那個result.csv。fileALL.close稍後會去調整(剛上完課Q_Q")
作者: BigBank ( )   2016-09-23 22:28:00
'w' 每次寫入都會從新檔寫入 而不是加在原本的後面一直蓋過去 應該只有56行的write會被留下來不知道這是不是你的問題 (如果要加在後面 用'a')
作者: Typebrook (Pham)   2016-09-23 22:29:00
若有再while loop內使用open()寫入檔案,第二個參數可加'a',不過你貼的code應該OK的
作者: BigBank ( )   2016-09-23 22:37:00
抱歉 我發現我搞錯了 當我沒說QQ
作者: jakeasa123 (啊斑斑)   2016-10-06 00:48:00
感謝各位的回應,後來調整很久才發現是csv裡面有些字元會讓程式炸掉(像是"),移除後同時改用print再複製貼上到記事本就沒問題了(後來再調整後測試write也沒問題)。感謝各位!

Links booklink

Contact Us: admin [ a t ] ucptt.com