返回顶部
首页 > 资讯 > 精选 >如何实现每天用Jupyter写5分钟的日记
  • 938
分享到

如何实现每天用Jupyter写5分钟的日记

2023-06-15 21:06:29 938人浏览 独家记忆
摘要

本篇内容介绍了“如何实现每天用Jupyter写5分钟的日记”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!导入 ipywidgets 模块首先

本篇内容介绍了“如何实现每天用Jupyter写5分钟的日记”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

导入 ipywidgets 模块

首先,你需要导入一堆东西,比如 ipywidgets 和 Twisted。Twisted 模块可以用来创建一个异步时间计数器:

import twisted.internet.asyncioReactortwisted.internet.asyncioreactor.install()from twisted.internet import reactor, taskimport ipywidgets, datetime, subprocess, functools, os

设置定时条目

用 Twisted 实现时间计数器是利用了 task.LoopinGCall。然而,结束循环调用的唯一方法是用一个异常。倒计时时钟总会停止,所以你需要一个自定义的异常来指示“一切正常;计数器结束”:

class DoneError(Exception):    pass

现在你已经写好了异常,你可以写定时器了。第一步是创建一个 ipywidgets.Label 的文本标签组件。循环使用 divmod 计算出分和秒,然后设置标签的文本值:

def time_out_counter(reactor):    label = ipywidgets.Label("Time left: 5:00")    current_seconds = datetime.timedelta(minutes=5).total_seconds()    def decrement(count):        nonlocal current_seconds        current_seconds -= count        time_left = datetime.timedelta(seconds=max(current_seconds, 0))        minutes, left = divmod(time_left, minute)        seconds = int(left.total_seconds())        label.value = f"Time left: {minutes}:{seconds:02}"        if current_seconds < 0:            raise DoneError("finished")    minute = datetime.timedelta(minutes=1)    call = task.LoopingCall.withCount(decrement)    call.reactor = reactor    d = call.start(1)    d.addErrback(lambda f: f.trap(DoneError))    return d, label

从 Jupyter 组件中保存文本

下一步是写一些东西,将你输入的文字保存到一个文件中,并提交到 git。另外,由于你要写 5 分钟的日记,你需要一个能给你提供写字区域的组件(滚动肯定是可以的,但一次能看到更多的文字就更好了)。

这就用到了组件 Textarea,这是一个你可以书写的文本字段,而 Output 则是用来给出反馈的。这一点很重要,因为 git push 可能会花点时间或失败,这取决于网络。如果备份失败,用反馈提醒用户很重要:

def editor(fname):    textarea = ipywidgets.Textarea(continuous_update=False)    textarea.rows = 20    output = ipywidgets.Output()    runner = functools.partial(subprocess.run, capture_output=True, text=True, check=True)    def save(_ignored):        with output:            with open(fname, "w") as fpout:                fpout.write(textarea.value)            print("Sending...", end='')            try:                runner(["git", "add", fname])                runner(["git", "commit", "-m", f"updated {fname}"])                runner(["git", "push"])            except subprocess.CalledProcessError as exc:                print("Could not send")                print(exc.stdout)                print(exc.stderr)            else:                 print("Done")    textarea.observe(save, names="value")    return textarea, output, save

continuous_update=False 是为了避免每个字符都保存一遍并发送至 Git。相反,只要脱离输入焦点,它就会保存。这个函数也返回 save 函数,所以可以明确地调用它。

创建一个布局

最后,你可以使用 ipywidgets.VBox 把这些东西放在一起。这是一个包含一些组件并垂直显示的东西。还有一些其他的方法来排列组件,但这足够简单:

def journal():    date = str(datetime.date.today())    title = f"Log: Startdate {date}"    filename = os.path.join(f"{date}.txt")    d, clock = time_out_counter(reactor)    textarea, output, save = editor(filename)    box = ipywidgets.VBox([        ipywidgets.Label(title),        textarea,        clock,        output    ])    d.addCallback(save)    return box

biu!你已经定义了一个写日记的函数了,所以是时候试试了。

journal()

如何实现每天用Jupyter写5分钟的日记

Jupyter journal

你现在可以写 5 分钟了!

“如何实现每天用Jupyter写5分钟的日记”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何实现每天用Jupyter写5分钟的日记

本文链接: https://lsjlt.com/news/281662.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何实现每天用Jupyter写5分钟的日记
    本篇内容介绍了“如何实现每天用Jupyter写5分钟的日记”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!导入 ipywidgets 模块首先...
    99+
    2023-06-15
  • php如何实现每天积分加一
    这篇文章给大家分享的是有关php如何实现每天积分加一的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php实现每天积分加一的方法:1、在数据表里增加一个字段logintime;2、使用一天中的零时零分零秒和上一次的...
    99+
    2023-06-22
  • php如何实现每隔10分钟取消订单
    php实现每隔10分钟取消订单方法:1、创建一个php示例文件;2、构造”cancelOrders“函数检查是否需要取消订单;3、设置变量”$interval“值为10分钟;4、执行”while“循环,调用”cancelOrders“取消订...
    99+
    2023-05-24
    php
  • 每天学一分钟使用Git服务器实现查看Debug分支及修复
    Debug分支 在项目的正常开发过程中,之前发布过的版本可能很会出bug,这时就需要停下来现在的开发任务,先去修改bug,完成后再回来继续开发任务 git中stash提供了保存现场的...
    99+
    2024-04-02
  • vue js如何实现秒转天数小时分钟秒
    这篇文章给大家分享的是有关vue js如何实现秒转天数小时分钟秒的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示;SecondToDate: functi...
    99+
    2024-04-02
  • 如何用Python写一个每天的定时程序
    1.计算生日是星期几当你女朋友要过生日了,你肯定要定找家饭店订个餐庆祝一下,餐馆工作日会空一些,周末位置不好定,要是能知道她的生日是星期几就好了,下面这个程序就能搞定~~比如girl friend 的生日假设是 gf_birthday='...
    99+
    2023-01-31
    如何用 程序 Python
  • Go如何实现用户每日限额
    这篇文章将为大家详细讲解有关Go如何实现用户每日限额,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如果你写一个 bug 管理系统,用了这个 PeriodLimit 你就可以限制每个测试人员每天只能给你提一...
    99+
    2023-06-26
  • 如何编写ajax的定时调用每5秒调用一次
    本篇内容介绍了“如何编写ajax的定时调用每5秒调用一次”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!复制...
    99+
    2024-04-02
  • 每秒570000的写入,MySQL如何实现?
    来源:吴炳锡 yq.aliyun.com/articles/278034 MySQL数据库如何实现每秒570000的写入,通过本文了解下。 一、需求 一个朋友接到一个需求,从大数据平台收到...
    99+
    2024-04-02
  • 如何编写代码实现15分钟时间提醒
    这篇文章主要讲解了“如何编写代码实现15分钟提醒”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写代码实现15分钟提醒”吧!保存为.vbs代码如下:today=Date() years=...
    99+
    2023-06-09
  • Python 如何实现分布式日志记录?
    在现代应用程序的开发中,记录日志是非常重要的一项任务。日志记录可以帮助开发人员快速发现和解决程序中的问题。在分布式系统中,日志记录变得更加复杂,因为日志不仅需要记录每个节点的信息,还需要记录节点之间的交互信息。本文将介绍如何使用 Pyth...
    99+
    2023-07-22
    日志 分布式 函数
  • 如何实现sql中时间以5分钟半个小时任意间隔分组
    这篇文章主要介绍了如何实现sql中时间以5分钟半个小时任意间隔分组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开发中遇到过问题就是对时间以...
    99+
    2024-04-02
  • 如何使用ActionFilterAttribute实现API日志的记录
    本篇内容主要讲解“如何使用ActionFilterAttribute实现API日志的记录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用ActionFil...
    99+
    2024-04-02
  • python如何实现——日期加上天数的处
    在datetime模块中有一个timedelta这个方法,它代表两个datetime之间的时间差。我们可以使用它来实现。 例子: import datetime now = datetime.datetime.now() date = n...
    99+
    2023-01-31
    天数 如何实现 日期
  • 如何实现每天按时重启服务器的批处理
    这篇文章主要为大家展示了“如何实现每天按时重启服务器的批处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现每天按时重启服务器的批处理”这篇文章吧。操作如下: 1、我们先写一个批处理文件 ...
    99+
    2023-06-08
  • Go实现用户每日限额的方法(例一天只能领三次福利)
    目录工作原理go-zero 代码实现项目地址如果你写一个 bug 管理系统,用了这个 PeriodLimit 你就可以限制每个测试人员每天只能给你提一个 bug。工作是不是就轻松很多...
    99+
    2024-04-02
  • 用JS写了一个30分钟倒计时器的实现示例
    前端页面倒计时功能在很多场景中会用到,如很多秒杀活动等,本文主要介绍了用JS写了一个30分钟倒计时器的实现示例,感兴趣的可以了解一下 <!DOCTYPE HTML> &l...
    99+
    2024-04-02
  • 如何通过Java日志记录实现大数据分析?
    在现代软件开发中,日志记录是一个不可或缺的部分。它可以帮助开发人员快速找到和修复软件中的问题,同时也可以为后续的数据分析提供有价值的信息。在本文中,我们将介绍如何通过Java日志记录实现大数据分析。 一、什么是Java日志记录? Java...
    99+
    2023-09-25
    日志 并发 大数据
  • 如何利用Java技术实现高效的日志记录?
    在现代软件开发中,日志记录是必不可少的一部分。它可以帮助开发人员快速定位错误,并且为系统的运行情况提供有价值的信息。在Java技术中,有很多方式可以实现日志记录。本篇文章将介绍如何利用Java技术实现高效的日志记录。 一、使用Java自带的...
    99+
    2023-09-05
    日志 开发技术 分布式
  • 分布式对象存储方案,如何实现日志记录?
    随着云计算和大数据时代的到来,分布式对象存储方案越来越受到关注。在这个方案中,日志记录是非常重要的一项功能。本文将介绍分布式对象存储方案中日志记录的实现方法,并且演示代码。 一、什么是分布式对象存储方案? 分布式对象存储方案是指通过多台服...
    99+
    2023-07-28
    日志 分布式 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作