原文标题 :Automate 4 Boring Tasks in Python with 5 Lines of Code
用 5 行代码在 Python 中自动完成 4 个无聊的任务
带有几行 Python 代码的自动化脚本。
想想你在工作中做过的最无聊的任务。很有可能,您可以使用 Python 将其自动化。
您只需要打开您喜欢的文本编辑器并开始编写代码。但是,您可能比其他任务更难以自动化某些任务并最终浪费更多时间。
然而,大多数人不知道的是,除了处理自动化中最困难的部分之外,还有一些鲜为人知的库,因此您只需编写几行代码即可完成工作。
这里有 4 项任务,您可以在 5 分钟或更短的时间内使用 Python 自动执行。您需要编写 5 行左右的代码来自动化每一行(真的)。
1. Multiple Folder Creation
我在工作中做过的最无聊的任务之一就是为一年中的每一天/每个月创建文件夹。这些文件夹将包含重要文件,因此需要妥善组织。
Something like this.
尽管这看起来很简单,但这可能会阻止您执行其他生产性任务。幸运的是,我们可以使用 pathlib 自动创建文件夹。我相信这个库是 Python 自带的,但是如果你没有,就用 pip 安装它。
这里棘手的部分是获取月份的名称。有些人所做的是创建一个列表并手动输入从 1 月到 12 月的月份名称。
没关系,但是我们可以使用日历模块轻松获取月份的名称。
import calendarmonth_names = list(calendar.month_name[1:])
print(month_names)
然后,我们必须在列表中手动写入我们想要的日期(如果您必须为第 1 天到第 31 天创建文件夹,请使用列表理解来节省创建它们的时间)[0]
days = ['Day 1', 'Day 8', 'Day 15', 'Day 22', 'Day 28']
现在,我们可以使用下面的代码循环遍历一年中的每个月/天。
from pathlib import Path
import calendar
month_names = list(calendar.month_name[1:])
days = ['Day 1', 'Day 8', 'Day 15', 'Day 22', 'Day 28']
for i, month in enumerate(month_names):
for day in days:
Path(f'2022/{i+1}.{month}/{day}').mkdir(parents=True, exist_ok=True)
运行代码后,将在您的工作目录中创建一个新的“2022”文件夹。在里面,您会看到一年中每个月和一天的文件夹,如上面的屏幕截图所示。
2. 从 PDF 中提取表格
有一个名为 camelot 的库,可以帮助您从 PDF 中提取表格。它并不总是能顺利运行,但有一些方法可以自定义提取。
在安装 camelot 之前,您可能需要安装 tk 和 Ghostscript 等库(查看文档了解更多详细信息)[0]
满足所有要求后,就可以安装 camelot。
# pip
pip install camelot-py# conda
conda install -c conda-forge camelot-py
对于这个简单的演示,我将使用此处提供的名为“foo.pdf”的 PDF 下载文件并将其保存在您的工作目录中。[0]
要阅读这个 PDF 文件,我们可以使用 .read_pdf 方法
import camelottables = camelot.read_pdf('foo.pdf', pages='1', flavor='lattice')
print(tables)
如果您打印此文件,您将获得第 1 页上的表格数量。在这种情况下,只有一张桌子。另外,请记住,您可以使用风味参数自定义提取。默认设置为 lattice,但您可以将其设置为流式传输。
现在要从 PDF 中提取表格,我们使用 .export 方法,然后我们可以将其打印为数据框或将其导出为 CSV 文件。
tables.export('foo.csv', f='csv', compress=True)tables[0].to_csv('foo.csv') # to a csv file
print(tables[0].df) # to a df
伟大的!如果将其导出为 CSV,则该文件应位于您的工作目录中。
3. 从网站中提取表格
大多数人不知道我们可以轻松地从仅使用 Pandas 的网站中提取表格(如果您没有 Pandas,请使用 pip 安装它:pip install pandas)
假设您想从 Wikipedia 中提取表格。您可以使用 .read_html 方法在几秒钟内完成。下面的代码帮助我提取辛普森一家在维基百科上的帖子中列出的所有表格。[0]
import pandas as pdsimpsons = pd.read_html('https://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes_(seasons_1%E2%80%9320)')
现在我有 20 个表存储在 mysimpsons 列表中。我们可以通过索引选择第二个表:
# getting the first 5 rows of the table "Season 1" (second table)
simpsons[1].head()
4. 在 WhatsApp 上发送消息
使用 Python 在 WhatsApp 上发送消息的最简单方法是使用名为 pywhatkit 的库。
首先,我们需要安装它,所以打开一个终端并运行以下命令(如果可能,将其安装在新的虚拟环境中)。
pip install pywhatkit
安装可能需要一分钟,但是不用担心,编写发送消息的脚本会花费更少的时间。
重要提示:在使用此库之前,您需要通过 WhatsApp Web 登录到您的 WhatsApp 帐户。如果您没有登录,您将无法使用 pywhatkit 发送消息。另外,如果您需要发送需要保密的消息,我不建议您使用此库。
现在是发送消息的时候了。我们可以使用以下代码向 WhatsApp 联系人发送消息。
import pywhatkit# syntax: phone number with country code, message, hour and minutes
pywhatkit.sendwhatmsg('+1xxxxxxxx', 'Message 1', 14, 20)
请记住,“18”和“52”是您的消息被安排的小时/分钟,因此请尝试将其设置在 1 或 2 分钟内以更快地查看结果。
运行代码后,您将收到以下消息:
5 秒后,web.WhatsApp.com 将打开,15 秒后,Whatsapp 将发送一条消息。
就是这样!您刚刚使用 Python 在创纪录的时间内自动化了 5 个无聊的任务。
自动化你的生活!加入我的电子邮件列表与 10k+ 人一起获取我的免费自动化备忘单。[0]
如果您喜欢阅读此类故事并希望支持我作为作家,请考虑注册成为 Medium 会员。每月 5 美元,让您可以无限制地访问数以千计的 Python 指南和数据科学文章。如果您使用我的链接注册,我将赚取少量佣金,您无需支付额外费用。[0]
文章出处登录后可见!