Re: [問題] 讀取CSV檔的內容建成物件

作者: rexyeah (ccccccc)   2018-05-22 10:50:41
※ 引述《ChenXY (不差不歪 一插就歪)》之銘言:
: 小弟是最近在學Python的新手
: 遇到一個問題試好久都想不出來
: 就是如何把csv檔的內容建成物件
: 網路上只有查到一種方法
: 就是先宣告一個空陣列再藉由它加入到目標類別
: 但我後來測試卻也一直行不通
https://codepad.remoteinterview.io/UMHMRTMPAI
像這樣嗎?
: 我大致列一下code方便大大修正一下:
: class Midterm:
: # 先宣告以下3個objects為空 這裡先略過
: def __init__(self, problem, status, subTime):
: self.problem = problem
: self.status = status
: self.subTime = subTime
: myList = []
: import csv
: midtermFile = "midterm.csv"
: fh = open(midtermFile, 'r', newline = '')
: reader = csv.reader(fh)
: headers = next(reader)
: for row in reader:
: myList.append(Midterm(int(row[2]), row[3], row[6]))
: # 那3個objects資料分別來自此csv檔的第3,4,7個
: print(row) # 這裡測試會出來
: print(Midterm.problem) # 但若改直接測試輸出的物件卻是空白
: # 其實捲軸有在跑並留出一大塊空白 貌似只是沒有顯示出來
: # 但後續切割時間資料時就顯示沒切成功找不到subTime.H
: fh.close()
: 另外還有個問題 就是我的subTime之後還需要跟別的時間字串比較先後
: 用datetime.strptime轉成時間型態好像無法比大小
datetime obj應該可以比大小 是不是沒轉正確?
: 所以我打算用.split(":")切成時、分、秒再用邏輯比較
: 這樣subTime要另外宣告成一個子類別嗎
看你的需求吧 很複雜嗎?
: 因為我若不這樣而把它們宣告在Midterm.subTime.H #還有.M、.S
: __init__就要強制我在讀取csv時同時起始.H、.M、.S的值了
: 以上兩個問題麻煩大大們給點意見了 謝謝﹗
不知道有沒有理解你的問題。
作者: ChenXY (不差不歪 一插就歪)   2018-05-25 18:36:00
忘了回覆 原來是我搞錯物件的對象了 非常感謝大大的解惑

Links booklink

Contact Us: admin [ a t ] ucptt.com