Python 学习 ——懒人日志提醒小程序(欢迎指点和批评)(1)

文章讲述了如何使用Python编写一个工作日志记录脚本,通过用户输入获取日期、工作内容等信息,然后调用t.py文件判断日期对应的星期,并将数据保存到Excel文件中。内容包括文件交互、日期处理和Excel操作的代码片段。
摘要由CSDN通过智能技术生成
1、主文件 work_log.py

输入日志内容,检查是否输错,调用t.py。

day = input('请输入记录日志日期(例如20240808):')

work = input('请输入当前日期工作内容:')
times_range = input('请输入工作时长:')
if_overtime = input('请输入是否加班:')
jiancha = input('输入正确请按y,否则请按n:')
while jiancha =='n':
    day = input('请输入记录日志日期:')
    work = input('请输入当前日期工作内容:')
    times_range = input('请输入工作时长:')
    if_overtime = input('请输入是否加班:')
    jiancha = input('输入正确请按y,否则请按n:')
import t
t.t_1(day,work,times_range,if_overtime)
2、副文件 t.py

根据主文件输入的日期,判断是星期几,并生成weekday属性。

def t_1(day,work,times_range,if_overtime):
    from datetime import datetime

    def get_weekday():
        # print(day)
        date = datetime.strptime(day, "%Y%m%d")
        weekday = date.weekday()
        return weekday
    weekday = get_weekday()
    if weekday == 0:
        weekday = '星期一'
    elif weekday == 1:
        weekday = '星期二'
    elif weekday == 2:
        weekday ='星期三'
    elif weekday == 3:
        weekday = '星期四'
    elif weekday == 4:
        weekday ='星期五'
    elif weekday == 5:
        weekday ='星期六'
    else:
        weekday = '星期日'
    data = {
       f'{day[4:6]}月份':[day,times_range,work,weekday,if_overtime]
    }
    demo = Demo()
    demo.SaveExcels(data,'驻场工作日志','驻场日志',('日期','时长','工作内容','星期','是否加班'))
3、ExcelDemo excel模版程序

借用别人编写的,生成excel文件

'''
通过调用这个文件中的方法,可以直接操作excel

'''
import os, xlwt, xlrd
from xlutils.copy import copy
class Demo:
    # 单表数据存储
    @staticmethod
    def SaveExcel(data, folder, sheet, sheet1_headers):
        '''
        :param data: 字典:{子表名:[数据值]}
        :param folder: 文件夹路径
        :param sheet: excel文件名(工作簿)
        :param sheet1_headers:  表头 元组类型
        :return:
        '''
        # 获取当前路径
        os_mkdir_path = os.getcwd() + f'/{folder}/'
        # 判断这个路径是否存在,不存在就创建
        if not os.path.exists(os_mkdir_path):
            os.mkdir(os_mkdir_path)  # 创建一个名为数据的文件夹
        # 判断excel表格是否存在           工作簿文件名称
        os_excel_path = os_mkdir_path + f'{sheet}.xls'
        if not os.path.exists(os_excel_path):
            # 不存在,创建工作簿(也就是创建excel表格)
            workbook = xlwt.Workbook(encoding='utf-8')
            """工作簿中创建新的sheet表"""  # 设置表名
            for i in data.keys():
                key = i
            worksheet1 = workbook.add_sheet(key, cell_overwrite_ok=True)  # data 是要创建的表名
            # 这个表名必须要和data字典中的key一致
            """设置sheet表的表头"""
            # sheet1_headers = ('评论内容', '评论时间', '点赞数量', '用户名')
            # 将表头写入工作簿
            for header_num in range(0, len(sheet1_headers)):
                # 设置表格长度
                worksheet1.col(header_num).width = 2560 * 3
                # 写入            行, 列,           内容
                worksheet1.write(0, header_num, sheet1_headers[header_num])
            # 循环结束,代表表头写入完成,保存工作簿
            workbook.save(os_excel_path)
        # 判断工作簿是否存在
        if os.path.exists(os_excel_path):
            # 打开工作簿
            workbook = xlrd.open_workbook(os_excel_path)
            # 获取工作薄中所有表的个数
            sheets = workbook.sheet_names()
            for i in range(len(sheets)):
                for name in data.keys():
                    worksheet = workbook.sheet_by_name(sheets[i])
                    # 获取工作薄中所有表中的表名与数据名对比
                    if worksheet.name == name:
                        # 获取表中已存在的行数
                        rows_old = worksheet.nrows
                        # 将xlrd对象拷贝转化为xlwt对象
                        new_workbook = copy(workbook)
                        # 获取转化后的工作薄中的第i张表
                        new_worksheet = new_workbook.get_sheet(i)
                        for num in range(0, len(data[name])):
                            new_worksheet.write(rows_old, num, data[name][num])
                        new_workbook.save(os_excel_path)
    # 多表数据存储
    @staticmethod
    def SaveExcels(data, folder, sheet, sheet1_headers):
        '''
        :param data: 字典{sheet名:[数据值]}
        :param folder:  文件夹名字
        :param sheet:   excel文件名(工作簿)
        :param sheet1_headers:  表头 元组类型
        :return:
        '''

        # 获取表的名称
        sheet_name = [i for i in data.keys()][0]
        # 创建保存excel表格的文件夹
        # os.getcwd() 获取当前文件路径
        os_mkdir_path = os.getcwd() + f'/{folder}/'
        # 判断这个路径是否存在,不存在就创建
        if not os.path.exists(os_mkdir_path):
            os.mkdir(os_mkdir_path)
        # 判断excel表格是否存在           工作簿文件名称
        os_excel_path = os_mkdir_path + f'{sheet}.xls'
        if not os.path.exists(os_excel_path):
            # 不存在,创建工作簿(也就是创建excel表格)
            workbook = xlwt.Workbook(encoding='utf-8')
            """工作簿中创建新的sheet表"""  # 设置表名
            worksheet1 = workbook.add_sheet(sheet_name, cell_overwrite_ok=True)
            """设置sheet表的表头"""
            # sheet1_headers = ('评论内容', '评论时间', '点赞数', '用户名')
            # 将表头写入工作簿
            for header_num in range(0, len(sheet1_headers)):
                # 设置表格长度
                worksheet1.col(header_num).width = 2560 * 3
                # 写入表头        行,    列,           内容
                worksheet1.write(0, header_num, sheet1_headers[header_num])
            # 循环结束,代表表头写入完成,保存工作簿
            workbook.save(os_excel_path)
        """=============================已有工作簿添加新表==============================================="""
        # 打开工作薄
        workbook = xlrd.open_workbook(os_excel_path)
        # 获取工作薄中所有表的名称
        sheets_list = workbook.sheet_names()
        # 如果表名称:字典的key值不在工作簿的表名列表中
        if sheet_name not in sheets_list:
            # 复制先有工作簿对象
            work = copy(workbook)
            # 通过复制过来的工作簿对象,创建新表  -- 保留原有表结构
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/be64960cbabe0e2bf9af7d69acc55cc4.png)

![img](https://img-blog.csdnimg.cn/img_convert/479e63a092153b6d95e263afa78cab18.png)

![img](https://img-blog.csdnimg.cn/img_convert/121124f35a9a64f62a39bf5207c9787a.png)

![img](https://img-blog.csdnimg.cn/img_convert/9ad868918acf74bc4ac54da98e52762f.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

f79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/cbddec66db043389c89c820b36a47336.jpeg)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值