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