1.问题

和女朋友51数学建模期间,当我用python直接读取日期和时间的时候,发现读出来的全部都是数字

2.解决方法

我的excel格式

读取每一行数据,把年月日,小时分取出

import xlrd
from datetime import datetime
from xlrd import xldate_as_datetime, xldate_as_tuple

class excel_read:
    def __init__(self, excel_path='E:/QQ/FileRecv/2021-51MCM-Problems/2021-51MCM-Problem B/11.xlsx', encoding='utf-8', index=0):
        self.data = xlrd.open_workbook(excel_path)  ##获取文本对象
        self.table = self.data.sheets()[index]  ###根据index获取某个sheet
        self.rows = self.table.nrows  ##3获取当前sheet页面的总行数,把每一行数据作为list放到 list

    def get_data(self):
        for i in range(self.rows):
            col = self.table.row_values(i)  ##获取每一行数据
            real_date_1_y = str(xldate_as_datetime(col[1], 0).strftime('%y')) #读取每一行的第二列的日期中年份给real_date_1_y 
            real_date_1_md = str(xldate_as_datetime(col[1], 0).strftime('%m/%d'))#读月/日
            real_date_2_H = int(xldate_as_datetime(col[2], 0).strftime('%H'))#读小时
            real_date_2_M = int(xldate_as_datetime(col[2], 0).strftime('%M'))#读分
            
            ##下面的是我用上面得到的数据来进行判断,不用看
            if real_date_1_md=='11/01':
                state1 = 1
                if real_date_2_H>=0 and real_date_2_H<8 :
                    n_08=n_08+1
                if real_date_2_H>=8 and real_date_2_H<16 :
                    n_816=n_816+1
                if real_date_2_H>=16 and real_date_2_H<24 :
                    n_1624=n_1624+1

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐