看板 Python 關於我們 聯絡資訊
小弟是最近在學Python的新手 遇到一個問題試好久都想不出來 就是如何把csv檔的內容建成物件 網路上只有查到一種方法 就是先宣告一個空陣列再藉由它加入到目標類別 但我後來測試卻也一直行不通 我大致列一下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轉成時間型態好像無法比大小 所以我打算用.split(":")切成時、分、秒再用邏輯比較 這樣subTime要另外宣告成一個子類別嗎 因為我若不這樣而把它們宣告在Midterm.subTime.H #還有.M、.S __init__就要強制我在讀取csv時同時起始.H、.M、.S的值了 以上兩個問題麻煩大大們給點意見了 謝謝﹗ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.118.82 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1526943707.A.E74.html
TitanEric: 你目前只把物件放在list裡面而已 如果你要看裡面放什麼 05/22 16:01
TitanEric: 應該輸出myList[-1].你要的attribute 05/22 16:01
TitanEric: datetime部分的比較有兩個都是datetime型態嗎? 覺得日 05/22 16:03
TitanEric: 期比較直接丟給Python處理就好 05/22 16:03
因為我原本搞錯物件的對象了 所以轉datetime的部分因此並未成功轉成目標 經過下一篇大大的提示後確實解決問題了 也謝謝泰坦大的回覆! ※ 編輯: ChenXY (114.36.189.59), 05/25/2018 18:41:25