python打开软件输入消息_用Python编写一个私人助理程序,为我们起草电子邮件!...

在你的工作中是否有一些你自己经常做重复的任务?这就是编程的乐趣所在。通过一些思考和编程,您可以使您的任务自动化,并为您节省大量时间。在本文中,我们将介绍一些Python工具和技巧,让你可以创建自己的Python个人助理。

1. 助手功能

我们要创建一个助手,可以写电子邮件。只需要输入收件人的名字或昵称,其余的都由它来处理。要写一封好的电子邮件,这个程序会查看我们制作的Excel表格,里面有我通常每周都会给他们发邮件的人的基本信息。例如,如果我输入Caleb(我想要给谁发电子邮件的名字),它会为我复制以下内容:

Full name: Caleb (Coco) Stephano

Email to send to: stevens.coco12345@snailmail.com

Hi Coco,

I hope all is well on the UX team!

Thanks,

Ben

2. 输入程序指令

为了让您的Python助手帮助您,您可能需要向它提出一些要求。首先,提示用户输入文本:

answer=input('What can I help you with? Enter here: ')

当您运行您的文件时,您将注意到在终端或命令提示符中,光标正好放在上面圆括号内的文本之后,为您的输入做好准备。

3. 使用openpyxl从Excel中获取数据

假设你在Excel表格中有关于你所有朋友的信息。更具体地说,是他们的姓和名、昵称、电子邮件地址、兴趣爱好等等。您可以使用openpyxl从该工作表中提取数据,以便您的Python助手可以使用它:

import openpyxl

book = openpyxl.load_workbook(r'Put_Your_Path_To_Sheet_Here')

ws = book.active

您现在可以使用ws来做各种事情。例如,让我们用我们的朋友的例子,想象每一列是一个信息列表:

这张单子上写着Beth很喜欢打网球。然而,我们不应该每次都打开和搜索我们的表单来记住这一点。我们的助理会帮我们的。例如,下面的附加代码将列昵称数据存储到数组中。这样,你的助手可以搜索和处理你的数据:

import openpyxl

#SET UP SHEET

book = openpyxl.load_workbook(r'Put_Your_Path_To_Sheet_Here')

ws = book.active

#SET UP ARRAY TO HOLD NICKNAMES

nickArray=[]

#APPEND NICKNAMES IN LIST, RUNNING THROUGH COLUMN B OF THE SHEET UNTIL THERE'S AN EMPTY CELL

skip=True

firstRow=True

for cell in ws['B']:

if (cell.value==None):

continue

if (skip==False):

nickArray.append(cell.value)

firstRow=False

skip=False

#PRINT ALL ITEMS IN THAT ROW TO SEE THAT IT WORKS

for x in nickArray:

print(x)

这段代码查看工作表的列B,跳过第一行(通常是标题行),然后扫描整行数据,直到没有剩下。它将每个项添加到数组中。

4. 使用tkinter显示用户友好的消息

在电脑上,人们通常不会在终端机或命令提示符中埋头工作。通常,你会使用一些不错的用户界面,比如Microsoft Word或谷歌Chrome。您可能会注意到,您通过带有按钮的漂亮窗口和这些程序交互。这就是好的UX/UI发挥作用的地方。

到目前为止,您和助手在终端或命令提示符中通信,这不是理想的UI。Python的tkinter库包含允许您创建新的和改进的UI的工具。

下面是一个简单的例子。假设当我们运行update .py文件以使用最新的Excel表信息更新我们的助手时,我们希望显示一条“update Successful”消息:

#THIS IS IN updater.py

from tkinter import *

#DISPLAY SUCCESS MESSAGE

root=Tk()

labelfont=('times', 20, 'bold')

root.title('Success Confirmation')

successText='Your update was successful'

widget=Label(root, text=successText, wraplength=600, justify=LEFT)

widget.config(height=35, width=90)

widget.pack(expand=YES, fill=BOTH)

root.mainloop()

它的工作方式是将tkinter根目录设置为基本窗口构建块,并在其上添加额外的细节。我添加了标题、正文文本、关于文本外观的详细信息、窗口尺寸以及关于窗口功能的其他规范。当你运行这个文件时,最终结果看起来是这样的:

5. 使用pyperclip将文本复制到剪贴板

为我起草邮件的助手会在我面前显示邮件文本。使用pyperclip库,它有工具可以自动将任何文本复制到剪贴板:

#THIS IS IN assistant.py

import pyperclip

myText="Hi Coco,\n\n"+"I hope all is well on the UX team!\n\n"+"Thanks,\n"+"Ben"

pyperclip.copy(myText)

6. 将文本写入日志

如果您希望保留一个日志,其中包含您的助手上次帮助您的时间,该怎么办?创建一个名为log.py的新Python文件。这就是日志。如果您的助手有以下代码,则可以始终使用日期和时间为您填充日志:

#THIS IS IN assistant.py

#IMPORT LIBRARY THAT GETS CURRENT DATE AND TIME

import datetime

#CREATE AND NEW DATE AND TIME

now = datetime.datetime.now()

#WRITE DATE AND TIME TO THE LOG

with open("log.py", "w") as f1:

f1.writelines(now.strftime("%Y-%m-%d %H:%M:%S")

源码获取私信小编01获取!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

swing 状态视图分离_Java Swing模型视图适配器介体

swing 状态视图分离通常,我基于Spring Framework构建Java应用程序。 但是,最近有人要求我使用与语言无关的MVC框架PureMVC为客户端实现Java桌面应用程序,因此以下是我在Java Swing中为PureMVC进行员工管理展示的演示实现。 如果您想继续学习&…

超级炫酷的C语言技巧!

点击蓝字关注我们C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。一、指定的初始化很多人都知道像这样来静态地初始化数…

webgl 基础渲染demo_WebGL + ThreeJS 实现实时水下焦散 Part 1

知乎视频​www.zhihu.com采用 WebGL 和 ThreeJS 运行实时焦散运算,需要一点相关基础。本文主要介绍焦散的原理以及计算方法原作者https://github.com/martinRenou​github.com代码和原文https://github.com/martinRenou/threejs-caustics​github.com由于本人的笔电…

python代码性能分析_使用memory_profiler对代码进行性能分析会增加执行时间

我正在编写一个简单的应用程序,它将大文本文件拆分为较小的文件,并且我已经编写了2个版本,一个使用列表,另一个使用生成器。我使用memory_profiler模块对这两个版本进行了概要分析,并清楚地显示了生成器版本的更好的内…

超硬核C++BestPractices翻译与阅读笔记

点击蓝字关注我们硬货开始这本书的副标题是:45ish Simple Rules with Specific Action items for better C ,这本书是由大佬推荐的, C学习有必要掌握一下这45条最佳实践, 可以很大程度上提升代码的可读性和健壮性, 而且这本书也不…

redis集成spring_将Redis集成到您的Spring项目中

redis集成spring本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中。 我们将从Gradle配置开始。 我们将使用jedis驱动程序。 group com.gkatzioura.spring version 1.0-SNAPSHOTapply plugin: java apply plugin: eclipse apply plugin: idea apply plugin: spring…

Python3实现翻转二叉树问题

Python3实现翻转二叉树问题翻转一棵二叉树。# 二叉树的结构如下 class TreeNode:def __init__(self, x):self.val xself.left Noneself.right None# 解决方案 class Solution:# 从根节点开始递归翻转其左子树和右子树def invertTree(self, root: TreeNode) -> TreeNode:i…

diskgenius单文件专业版_金蝶KIS专业版系列——系统工具六(业务套打工具)

导读:(一)问一问1.1.套打的作用1.2.举例(二)怎么进入套打设计器2.1.入口12.2.入口2(三)怎么使用套打设计器打开套打模板3.1.打开系统标准套打模板3.2.新建一个空白的套打模板3.3.保存套打模板3.…

面试常问的16个C语言问题,你全会吗?

点击蓝字关注我们金三银四不少小伙伴在找工作,这里我给大家分享一下面试中经常会遇到的一些嵌入式C语言问题,你看看能做到全会吗?1、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题&#xff09…

高性能 高可用 可弹性伸缩_性能,可伸缩性和活力

高性能 高可用 可弹性伸缩本文是我们名为Java Concurrency Essentials的学院课程的一部分。 在本课程中,您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识,并学习诸如原子性,同步和线程安全性的概念。 在这里查看 !…

Python3实现32位整数翻转

Python3实现32位整数翻转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 […

iptables命令_程序员最有用的linux命令汇总

总结程序员在工作中,最有用的linux命令如下:1、vi/vim 我们须要在服务器上代码一些代码时候,就用vi/vim命令就可以,vim是vi的升级,本色自带代码高亮工具,利于查看。dd 删除光标所在行o 向光标所在行向下增加…

抽象类和接口设计_如何设计类和接口

抽象类和接口设计本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的旅程! 在这里查看 &#xf…

详解C++异常

点击蓝字关注我们1、异常概念异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: …

Python3 反转一个单链表

Python3 反转一个单链表反转一个单链表。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL解题: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val x # …

python怎么改字体_python,tkinter_Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线,python,tkinter - phpStudy...

Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线 如题。未查到Tkinter下,促发条件后,是否能修改label中文字的样式 class Pomodoro_app(Tk): def add_task(self): global time time StringVar() time.set("Start") t…

使用所有对象共有的方法

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的旅程! 在这里查看 ! 目录 1.简…

C语言基础知识:指针与数组的区别是什么

点击蓝字关注我们在C语言教程中我们使用通过数组名通过偏移和指针偏移都可以遍历数组,那么指针和数组到底有什么区别??由于数组中的数据在内存中都是连续存放的,数组名默认就是数组的首地址,也是一个特殊的指针&#x…

Python3 三步爬楼梯问题

Python3 三步爬楼梯问题原题地址 https://leetcode-cn.com/problems/three-steps-problem-lcci/ 题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。…

python去重复功能_消除Python列表重复的几种方法,python,去,一些

做Python123平台上的列表去重题,复述题目: 去除列表中的重复元素,考虑以下几种情况: l [1, 1, 2, 3] l [[1], [1], [2], [3]] l [3, 2, 1, 1] 原文链接: 14025 总结一下网上的方法和我自己想的方法: 不考…