10 个杀手级的 Python 自动化脚本_ai python自动化-程序员宅基地

技术标签: python  数据分析  自动化  宋宋讲编程  Python  开发语言  

重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化脚本。

所以,请你把这篇文章放在你的收藏清单上,以备不时之需,在IT行业里,程序员的学习永无止境……

现在,让我们开始吧。

01、 图片优化器

使用这个很棒的自动化脚本,可以帮助把图像处理的更好,你可以像在 Photoshop 中一样编辑它们。

该脚本使用流行的是 Pillow 模块,你可以在下面找到优化图像所需的大部分方法。

  • 在你的图像编辑项目中使用

  • 在你的 Python 项目中使用它

  • 批量图像编辑

更多

# Image Optimizing
# pip install Pillow
import PIL
# Croping 
im = PIL.Image.open("Image1.jpg")
im = im.crop((34, 23, 100, 100))
# Resizing
im = PIL.Image.open("Image1.jpg")
im = im.resize((50, 50))
# Flipping
im = PIL.Image.open("Image1.jpg")
im = im.transpose(PIL.Image.FLIP_LEFT_RIGHT)
# Rotating
im = PIL.Image.open("Image1.jpg")
im = im.rotate(360)
# Compressing
im = PIL.Image.open("Image1.jpg")
im.save("Image1.jpg", optimize=True, quality=90)
# Bluring
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.BLUR)
# Sharpening
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.SHARPEN)
# Set Brightness
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Brightness(im)
im = im.enhance(1.5)
# Set Contrast
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Contrast(im)
im = im.enhance(1.5)
# Adding Filters
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageOps.grayscale(im)
im = PIL.ImageOps.invert(im)
im = PIL.ImageOps.posterize(im, 4)
# Saving
im.save("Image1.jpg")

02、视频优化器

通过使用以下自动化脚本,你不仅可以使用 Python 来优化视频,还可以使用它来优化图像。该脚本使用 Moviepy 模块,允许你修剪、添加音频、设置视频速度、添加 VFX 等等。

  • 创建完整的视频编辑器

  • 在你的 Python 项目中使用

  • 修剪视频

  • 从图像制作视频

更多

# Video Optimizer
# pip install moviepy
import moviepy.editor as pyedit
# Load the Video
video = pyedit.VideoFileClip("vid.mp4")
# Trimming
vid1 = video.subclip(0, 10)
vid2 = video.subclip(20, 40)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Speed up the video
final_vid = final_vid.speedx(2)
# Adding Audio to the video
aud = pyedit.AudioFileClip("bg.mp3")
final_vid = final_vid.set_audio(aud)
# Reverse the Video
final_vid = final_vid.fx(pyedit.vfx.time_mirror)
# Merge two videos
vid1 = pyedit.VideoFileClip("vid1.mp4")
vid2 = pyedit.VideoFileClip("vid2.mp4")
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Add VFX to Video
vid1 = final_vid.fx(pyedit.vfx.mirror_x)
vid2 = final_vid.fx(pyedit.vfx.invert_colors)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Add Images to Video
img1 = pyedit.ImageClip("img1.jpg")
img2 = pyedit.ImageClip("img2.jpg")
final_vid = pyedit.concatenate_videoclips([img1, img2])
# Save the video
final_vid.write_videofile("final.mp4")

03、PDF 转图片

这个小型自动化脚本可以方便地获取整个 PDF 页面并将它们转换为图像。该脚本使用流行的 PyMuPDF 模块,该模块以其 PDF 文本提取而闻名。

  • 在你的 PDF 项目中使用它

  • 批量 PDF 到图像

更多

# PDF to Images
# pip install PyMuPDF
import fitz
def pdf_to_images(pdf_file):
    doc = fitz.open(pdf_file)
    for p in doc:
        pix = p.get_pixmap()
        output = f"page{p.number}.png"
        pix.writePNG(output)
pdf_to_images("test.pdf")

04、获取 API 数据

需要从数据库中获取 API 数据或需要向服务器发送 API 请求。那么这个自动化脚本对你来说是一个方便的工具。使用 Urllib3 模块,可让你获取和发布 API 请求。

# pip install urllib3
import urllib3
# Fetch API data
url = "https://api.github.com/users/psf/repos"
http = urllib3.PoolManager()
response = http.request('GET', url)
print(response.status)
print(response.data)
# Post API data
url = "https://httpbin.org/post"
http = urllib3.PoolManager()
response = http.request('POST', url, fields={'hello': 'world'})
print(response.status)

05、电池指示灯

这个方便的脚本可以让你设置你想要得到通知的电池百分比,该脚本使用 Pyler 进行通知,使用 Psutil 获取当前的电池百分比。

# Battery Notifier
# pip instal plyer
from plyer import notification
import psutil
from time import sleep
while True:
    battery = psutil.sensors_battery()
    life = battery.percent
    if life < 50:
        notification.notify(
            title = "Battery Low",
            message = "Please connect to power source",
            timeout = 10
        )
    sleep(60)

06、语法固定器

厌倦了校对你的长文章或文本,然后,你可以试试这个自动化脚本,它将扫描你的文本并纠正语法错误,这个很棒的脚本使用 Happtransformer 模块,这是一个机器学习模块,经过训练可以修复文本中的语法错误。

# Grammer Fixer
# pip install happytransformer
from happytransformer import HappyTextToText as HappyTTT
from happytransformer import TTSettings
def Grammer_Fixer(Text):
    Grammer = HappyTTT("T5","prithivida/grammar_error_correcter_v1")
    config = TTSettings(do_sample=True, top_k=10, max_length=100)
    corrected = Grammer.generate_text(Text, args=config)
    print("Corrected Text: ", corrected.text)
Text = "This is smple tet we how know this"
Grammer_Fixer(Text)

07、拼写修正

这个很棒的脚本将帮助你纠正你的文本单词拼写错误。你可以在下面找到脚本,将告诉你如何修复句子中的单个单词或多个单词。

# Spell Fixer
# pip install textblob
from textblob import *
# Fixing Paragraph Spells
def fix_paragraph_words(paragraph):
    sentence = TextBlob(paragraph)
    correction = sentence.correct()
    print(correction)
# Fixing Words Spells
def fix_word_spell(word):
    word = Word(word)
    correction = word.correct()
    print(correction)
fix_paragraph_words("This is sammple tet!!")
fix_word_spell("maangoo")

08、互联网下载器

你们可能使用下载软件从 Internet 下载照片或视频,但现在你可以使用 Python IDM 模块创建自己的下载器。

  • 下载 Google 相册

  • 在你的项目中使用

  • 下载视频和音乐

更多

# Python Downloader
# pip install internetdownloadmanager
import internetdownloadmanager as idm
def Downloader(url, output):
    pydownloader = idm.Downloader(worker=20,
                                part_size=1024*1024*10,
                                resumable=True,)

    pydownloader .download(url, output)
Downloader("Link url", "image.jpg")
Downloader("Link url", "video.mp4")

09、获取世界新闻

使用此自动化脚本让你随时了解每日世界新闻,你可以使用任何语言从任何国家/地区获取新闻。这个 API 让你每天免费获取 50 篇新闻文章。

# World News Fetcher
# pip install requests
import requests
ApiKey = "YOUR_API_KEY"
url = "https://api.worldnewsapi.com/search-news?text=hurricane&api-key={ApiKey}"
headers = {
  'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
print("News: ", response.json())

10、PySide2 GUI

这个自动化脚本将帮助你使用 PySide2 Gui 模块创建你的 GUI 应用程序。你可以在下面找到开始开发体面的现代应用程序所需的每种方法。

PySide2 还支持跨平台,对开发人员非常友好,请查看下面的代码。

# PySide 2 
# pip install PySide2
from PySide6.QtWidgets import *
from PySide6.QtGui import *
import sys
app = QApplication(sys.argv)
window = QWidget()
# Resize the Window
window.resize(500, 500)
# Set the Window Title
window.setWindowTitle("PySide2 Window")
# Add Buttons
button = QPushButton("Click Me", window)
button.move(200, 200)
# Add Label Text
label = QLabel("Hello Medium", window)
label.move(200, 150)
# Add Input Box
input_box = QLineEdit(window)
input_box.move(200, 250)
print(input_box.text())
# Add Radio Buttons
radio_button = QRadioButton("Radio Button", window)
radio_button.move(200, 300)
# Add Checkbox
checkbox = QCheckBox("Checkbox", window)
checkbox.move(200, 350)
# Add Slider
slider = QSlider(window)
slider.move(200, 400)
# Add Progress Bar
progress_bar = QProgressBar(window)
progress_bar.move(200, 450)
# Add Image 
image = QLabel(window)
image.setPixmap(QPixmap("image.png"))
# Add Message Box
msg = QMessageBox(window)
msg.setText("Message Box")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
window.show()
sys.exit(app.exec())

最后的想法

今天这篇文章内容就到这里了,我希望你能为你的下一个开发项目找到一些有用的自动化脚本。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qiqi1220/article/details/127982349

智能推荐

凭借左程云(左神)的这份 “程序员代码面试指南”我入职了字节_左程云 程序员代码面试指南-程序员宅基地

文章浏览阅读54次。先后在IBM、百度、GrowingIO和亚马逊工作,是一个刷题7年的算法爱好者,也是马士兵教育的算法授课老师。这篇文章就是给大家分享左神这本《程序员代码面试指南--IT名企算法与数据结构题目最优解》,此书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)左程云(左神)是谁?_左程云 程序员代码面试指南

HDFS中NameNode工作机制_hdfs namenode -bootstrapstandby-程序员宅基地

文章浏览阅读591次。引言NameNode:存储元数据 管理整个HDFS集群DataNode:存储数据的blockSecondaryNameNode:辅助HDFS完成一些事情NameNode和SecondaryNameNode工作流程编辑日志文件:edits记载客户端对HDFS的增删改查的操作日志镜像文件:fsimage记载元数据(HDFS上存储的文件目录)及操作日志NameNode和SecondaryNameNode工作机制工作流程详解..._hdfs namenode -bootstrapstandby

java 列队_Java数据结构之队列(Queue)-程序员宅基地

文章浏览阅读198次。一、概述队列(queue):一种只允许在一端进行插入,在另一端进行删除的线性表结构。运行插入的一端叫队尾(rear),允许删除的一端叫队头(font)。与LIFO 的栈不同,队列是一种FIFO表。二、顺序存储结构的队列基本操作以及算法实现基本操作:入队、出对、队列里的元素数量、置空队列、判断是否为空、读取队列头部首元素等。根据基本操作抽象出基本类型:public interface IQueue{..._java 队列置空

tensorflow RNN实例_tensorflow rnn示例-程序员宅基地

文章浏览阅读3.2k次。本实例基于谷歌tensorflow官网RNN tutorial,Basic LSTM,侧重代码分析,包括数据预处理。read.py_read_words函数读取ptb文件,按utf-8格式读入,换行符使用替换,读取到的将组成list,可以通过如下的命令行模式下进行测试。with tf.gfile.GFile(&quot;/home/gsc/envtensorflow/deep_learn/models/tut_tensorflow rnn示例

Servlet详细教程-程序员宅基地

文章浏览阅读6.9w次,点赞479次,收藏2.4k次。Servlet简介servlet是Server Applet的简称,翻译过来就是服务程序.好吧,这么说你可能还是不太懂,简单的讲,这个servlet是运行在服务器上的一个小程序,用来处理服务器请求的.进一步讲,我们知道,一般的网页程序,是由我们通过浏览器访问来实现的,在这个过程中,我们的浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理.这就是我们熟悉的B/S模型(浏览器-服务..._servlet

Hutool 4.5.2 发布,点滴积累,感动人心-程序员宅基地

文章浏览阅读135次。开发四年只会写业务代码,分布式高并发都不会还做程序员? Hutool是一个 Java 工具包,也只是一个工具包..._hutool 异步发送邮件

随便推点

实践中学习vim之vim配置文件、插件文件加载路径_gvim 添加脚本加载路径-程序员宅基地

文章浏览阅读1.6k次。From:http://blog.csdn.net/smstong/article/details/205672350 引言理解vim的启动过程对于增强使用vim的信心非常重要,本文所有的信息均来自vim自身提供的参考手册和作者实际操作实践。VIM REFERENCE MANUAL的Starting Vim这节详细描述了vim的启动过程。vim完整的启动过程非常复杂,因为要_gvim 添加脚本加载路径

Java JDK安装小谈_jdk7u10windows-程序员宅基地

文章浏览阅读528次。我用的是当前最新版jdk-7u10-windows-i586。安装时有两个需要选择的安装路径,一个是JDK一个是JRE。两个最好安装在同一文件夹下。jre7即为jre安装文件包。接着便按步骤来,没什么难得。最重要的是设置环境变量,网上的各种教程有些混乱,而且大多没讲清楚,这里简单说一下。配置环境变量只需要配置两个参数:path和classpath。网上有的教程配置了JAVA_jdk7u10windows

ArcGIS Pro安装和深度学习入门及入门者的一些注意事项-程序员宅基地

文章浏览阅读1.8w次,点赞44次,收藏251次。ArcGIS Pro是ArcGIS产品中基于微软.NET Framework开发的一款ArcGIS桌面端的一款产品,采用64位架构,主要用于密集型计算。ArcGIS Pro并不是ArcMap以及ArcMap子套件的替代品,而是两个方向的产品。对于普通人而言,ArcGIS主要用于三维处理、深度学习、大规模数据加载以及其它的一些热点GIS问题处理方面。说实话,个人感觉ArcGIS Pro相比于传统ArcMap套件,在健壮性和稳定性方面还差得远。个人感觉虽然ArcGIS Pro很强大,但是用起来并不省心。_arcgis pro

JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用_jdk1.8.0_121 不包含 base64-程序员宅基地

文章浏览阅读2.1k次。问题:因为在学习servlet过程中需要解决文件下载的中文乱码问题,故引入了工具类sun.misc.BASE64Encoder,但是我用的是jdk9.0,已经没有这个jar包了,故一直无法借此解决中文乱码问题~解决:从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc...._jdk1.8.0_121 不包含 base64

72个炫酷的CSS技巧-程序员宅基地

文章浏览阅读881次。前言CSS是一门很特殊的语言,不像一般的编程语言那样需要抽象的思维和严密的逻辑,它真正需要的是想象力——将你脑中所想的意象用代码来表现出来。那么意象又是如何产生的呢?最常用的方法就是探索和观察。举个例子,笔者平时热爱看番,每看到有意思的场景画面总会下意识地记录下来,这对动画创作会非常有帮助;同样地,一旦笔者发现一个制作精良的网站,也会将网站上那些吸引人的元素仔细审查一遍,灵感也自然就有了。演示网址1:codepen演示网址2:shiroi源码地址:github本文的技巧将不会止步于72个_炫酷的css

抽象类和接口(Java程序设计)_现在有一个接口,接口里面有10个抽象方法, 我每次创建一个类实现接口, 则必须要重-程序员宅基地

文章浏览阅读737次。文章目录1.抽象类2.final修饰符3.接口4.接口编程案例学习目标_现在有一个接口,接口里面有10个抽象方法, 我每次创建一个类实现接口, 则必须要重

推荐文章

热门文章

相关标签