python工作技巧_4个基本的 Python 技巧让你的工作流程自动化

说实话,即使是简单的任务也需要大量的时间和大量的依赖管理,这可能会变得非常复杂。

尽管如此,让一些简单的任务自动化是非常值得的,即使它更多的是为了好玩。

对于那些已经是 Python 爱好者的人来说,您知道 Python 对于与几乎任何事物进行交互是多么友好。从发送 HTTP 请求、与 API 交互到加载和管理数据库。

Python 是自动化的一个很好的选择。

这里有五个简单的事情,可以帮助您的各种工作流程和项目 自动化。

1. 自动移动鼠标, 以便 Skype/Lynk 显示你在工作中处于活跃状态

想象一下,在过去的十分钟里,你一直在浏览你最喜欢的社交媒体应用程序的新闻 feed。突然,你的 Lynk 活跃的符号变成了黄色。你没有活动,也没有在开会。

你爱管闲事的老板走过来拍拍你的肩膀。

惊讶的是,你抬起头看到他在瞪着你。他有个坏习惯,总是对你的每一分每一秒进行微观管理。

“嘿,呃,我想让你放松,除了那个模块怎么样了,”他问道。你咬紧牙关,礼貌地回答。

“好吧,我只是想确保你专心致志。我们的副总裁贾尼斯真的希望我们能赶上最后期限。”

互动结束。

等等,你可以绕过这个。在 google 了一会儿之后,你找到了一个脚本来移动你的鼠标,并且开始编写一个作业来每隔几分钟运行一次,以确保你的鼠标在移动。

这些鼠标和键盘的动作可以让你看起来像是在工作,比如 Skype 或者 Lynk。

自动化使用 Python 的 PyAutoGUI 模块,要安装 PyAutoGUI 模块,运行以下命令:

pip install pyautogui

pip 安装 pyautogui

使用屏幕上的鼠标坐标系控制和跟踪鼠标。例如,如果你使用1920x1080的屏幕分辨率,你的屏幕坐标系应该是这样的:

下面的函数可以在 PyAutoGUI 模块下使用:

Size () : size ()函数让您知道屏幕分辨率:

import pyautogui

print(pyautogui.size())

运行这个文件(保存为。Py 扩展) ,Python 代码使用 size ()函数将屏幕分辨率的 x,y 格式作为输出:

在 PyAutoGUI 模块中移动鼠标。下面的代码使用这个函数,它采用 x 和 y 的坐标,以及一个可选的持续时间参数。该函数使用指定的时间持续参数将鼠标指针从当前位置移动到 x 和 y 的坐标

import pyautogui

print(pyautogui.size())

pyautogui.moveTo(150,100, duration = 2)

运行这个 Python 脚本会神奇地将鼠标指针从当前位置移动到坐标(150,100) ,这个过程只需要花费2秒钟完成。

除了这些基础之外,还可以使用诸如 click 和 typewrite 之类的函数来处理 click 和 type 字符串。

所有这些都可以用来确保你的老板不会很快发现你偷懒。

2. 使用 Selenium 自动登录网站

许多网站不赞成使用自动爬虫和程序登录他们的网站。但是,这仍然是一项伟大的技能。

Selenium 是一个非常有用的库,可以被多种语言使用,并且可以帮助 UI QA 自动化,甚至可以用登录来搜索网站。

尽管学习 Selenium 可能需要一些时间,但从小做起,只需要构建一个登录到您喜爱的网站的工具即可

首先,必须安装 Chrome Driver 和 Python 的 Selenium 库。使用下面的命令添加 Selenium 库:

pip install Selenium

首先,我们需要从 Python 的 Selenium 库中导入一些选定的模块:

From selenium import webdriver

driver = webdriver.Chrome()

现在,为了使登录过程自动化,我们从一个简单的任务开始,比如网站的登录表单。

这项任务包括:导航到网站。

查找登录域(通常是用户名和密码)。

填写你的登录信息。

提交登录详细信息,让您自动通过登录屏幕。

提示: 您可能决定定义一个“method”(用于频繁登录) ,以便在其他测试中进行重用。

代码行看起来类似于:

From selenium import webdriver

driver = webdriver.Chrome()

def login(url,username,password,submit_button):

driver.get(url)

driver.find_element_by_id(username).send_keys("username")

driver.find_element_by_id(password).send_keys("password")

driver.find_element_by_id(password).(submit_button).click()

正如您将注意到的,您需要获得您想要交互的元素。这可以说是创建一个 web-scraper 或登录到站点的自动化脚本的难点之一。

有几种方法可以检测 web 应用程序的元素来查找登录字段。

寻找元素的常见方法包括 ID (如上面的例子)、 CSS 选择器、名称和 XPaths。

在 Selenium 的官方文档中可以找到一种不同的方法来定位登录过程的元素。一些网站使用更多的动态内容(比如一些 JavaScript!)

总的来说,观看 Selenium 自动点击按钮并登录到你最喜欢的网站是令人着迷的。没有你的参与,事情就开始运转起来。

3. 自动文件备份

如果您执行常规备份,则创建自动备份文件非常有用。

您可能熟悉 ZIP 文件(带有。Zip extension).ZIP 文件可以包含几个文件及其压缩内容。而且,由于 ZIP文件还可以保存许多文件夹和子文件夹,因此将它们打包成一个文件夹就成为备份文件的一种方便的方法。

可以使用 zipfile 模块中的 Python 函数自动创建单个 ZIP 文件(称为归档文件)。

您还可以使用 Python 打开(或解压缩) ZIP 文件。

这个脚本摘自《用 Python 自动化无聊的事情》一书(如果你想要更多的想法的话)。

import zipfile, os

def backup(folder)

folder = os.path.abspath(folder)

offset=1

while True:

zip_name=os.path.basename(folder)+'_'+str(offset)+'.zip'

if not os.path.exists(zip_name):

break

offset+=1

print("Successfully created file " %s" %(zip_name))

backupzip=zipfile.ZipFile(zip_name,'w')

for foldername,subfolders,filenames in os.walk(folder):

backupzip.write(foldername)

backupzip.close()

print("done")

4. 自动发布 YouTube 视频到 Reddit

另一个我们最近看到并且认为是一个有趣的自动化任务的方法,你可能经常做,是使用一个脚本发布多个视频到 Reddit。

在 Reddit 上发布 YouTube 视频也可以自动化。使用 PRAW,一个 Python 包装器,可以让你搜集数据,可以提供更多的 Reddit 体验。

首先,使用 pip 安装 PRAW。

下面的脚本会自动将 YouTube 视频发布到 Reddit 上。

import praw

video_url=str(input("Your video url:"))

post_msg = str(input("Your post message"))

reddit=praw.Reddit(client_id="***************",

client_secret="************",

user_agent="**********",

username="************",

password="***********")

subreddit_list =["Python","PytonProjects","learningprogramming"]

for i in subreddit_list:

subreddit=reddit.subreddit(i)

print("Posting video to" + i)

subreddit.submit(post_msg, url=video_url)

print("Done")

总结

自动化任务可以带来很多乐趣。看着你的程序自动登录到你最喜欢的网站,或者载入数百个文件到一个数据库,可以让你感觉好像你已经重新设计了轮子。

而且,有很多很棒的库可以帮助你轻松地自动化任务。Excel 报告、电子邮件和其他任务可以简化为几行代码。

只要它是可维护的!

你可能感兴趣的:(python工作技巧)