[问题] 读取CSV档的内容建成物件

楼主: ChenXY (不差不歪 一插就歪)   2018-05-22 07:01:43
小弟是最近在学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的值了
以上两个问题麻烦大大们给点意见了 谢谢﹗
作者: TitanEric (泰坦)   2018-05-22 16:01:00
你目前只把物件放在list里面而已 如果你要看里面放什么应该输出myList[-1].你要的attributedatetime部分的比较有两个都是datetime型态吗? 觉得日期比较直接丢给Python处理就好

Links booklink

Contact Us: admin [ a t ] ucptt.com