[问题] 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