[問題] 重複使用同一csv時發生問題

看板Python作者時間9年前 (2016/03/23 11:37), 9年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
這邊是程式碼 http://www.codeskulptor.org/#user41_m3ClsqQPk7wXkna.py 用csv.DictReader()讀入一csv後 根據不同的header組合來把資料分類, 假設說原本的csv是 A,B,C,D 1,2,3,4 1,1,3,4 1,2,1,1 想要把它存成dict格式,用('A','B')當key: {('1','2'):[row1,row3],('1','1'):[row2]} 這就是header_dict(row_index,input_csv)的目標 但是在實際運行時,第一次使用這個函數ok,第二次使用就失敗了, 似乎是第一次運行時會更動到原本的site_csv, 但是我並沒有在函數裡對input_csv作更動阿, 還是說如果每次使用 for row in input_csv: 之後,要把這個csv的計數器歸零呢? 自問自答: 是的,如果要重複迭代同一個csv,要在for結束之後使用 data.seek(0),把計數器歸0。 參考自: http://stackoverflow.com/questions/20507228/ python-how-do-i-use-dictreader-twice 短網址: http://tinyurl.com/zux2ky6 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.237.106 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1458704235.A.0EF.html ※ 編輯: hutdris (140.114.237.106), 03/23/2016 12:01:39

03/24 14:45, , 1F
重讀檔會比較好維護一點
03/24 14:45, 1F

03/24 19:15, , 2F
寫成可以給with包裝的物件吧
03/24 19:15, 2F
感謝回覆! 所以在這個例子裡,直接把csv的檔名當作參數,每次執行函式都重讀 會是比較好的做法囉? ※ 編輯: hutdris (42.72.97.74), 03/26/2016 01:08:11
文章代碼(AID): #1MyWzh3l (Python)
文章代碼(AID): #1MyWzh3l (Python)