作者rexyeah (ccccccc)
看板Python
标题Re: [问题] 读取CSV档的内容建成物件
时间Tue May 22 10:50:41 2018
※ 引述《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的值了
: 以上两个问题麻烦大大们给点意见了 谢谢﹗
不知道有没有理解你的问题。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.35.72
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1526957444.A.4DB.html
1F:推 ChenXY: 忘了回覆 原来是我搞错物件的对象了 非常感谢大大的解惑 05/25 18:36