社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

10 个 Python 脚本来自动化你的日常任务

Python极客专栏 • 3 年前 • 330 次点击  


在这个自动化时代,我们有很多重复无聊的工作要做。 想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。 那么在本文中,我将向您介绍 10 个 Python 自动化脚本,以使你的工作更加自动化,生活更加轻松。 因此,没有更多的重复任务将这篇文章放在您的列表中,让我们开始吧。


英文 | https://python.plainenglish.io/10-python-scripts-to-automate-your-daily-task-de1496fdf64a Haider Imtiaz

翻译 | 杨小爱

01、解析和提取 HTML
此自动化脚本将帮助你从网页 URL 中提取 HTML,然后还为你提供可用于解析 HTML 以获取数据的功能。这个很棒的脚本对于网络爬虫和那些想要解析 HTML 以获取重要数据的人来说是一种很好的享受。
# Parse and Extract HTML# pip install gazpachoimport gazpacho# Extract HTML from URLurl = 'https://www.example.com/'html = gazpacho.get(url)print(html)# Extract HTML with Headersheaders = {'User-Agent': 'Mozilla/5.0'}html = gazpacho.get(url, headers=headers)print(html)# Parse HTMLparse = gazpacho.Soup(html)# Find single tagstag1 = parse.find('h1')tag2 = parse.find('span')# Find multiple tagstags1 = parse.find_all('p')tags2 = parse.find_all('a')


    
# Find tags by classtag = parse.find('.class')# Find tags by Attributetag = parse.find("div", attrs={"class": "test"})# Extract text from tagstext = parse.find('h1').texttext = parse.find_all('p')[0].text

02、二维码扫描仪

拥有大量二维码图像或只想扫描二维码图像,那么此自动化脚本将帮助你。该脚本使用 Qrtools 模块,使你能够以编程方式扫描 QR 图像。

# Qrcode Scanner# pip install qrtoolsfrom qrtools import Qrdef Scan_Qr(qr_img):    qr = Qr()    qr.decode(qr_img)    print(qr.data)    return qr.dataprint("Your Qr Code is: ", Scan_Qr("qr.png"))

03、截图

现在,你可以使用下面这个很棒的脚本以编程方式截取屏幕截图。使用此脚本,你可以直接截屏或截取特定区域的屏幕截图。

# Grab Screenshot# pip install pyautogui# pip install Pillowfrom pyautogui import screenshotimport timefrom PIL import ImageGrab# Grab Screenshot of Screen


    
def grab_screenshot():    shot = screenshot()    shot.save('my_screenshot.png')# Grab Screenshot of Specific Areadef grab_screenshot_area():    area = (0, 0, 500, 500)    shot = ImageGrab.grab(area)    shot.save('my_screenshot_area.png')# Grab Screenshot with Delaydef grab_screenshot_delay():    time.sleep(5)    shot = screenshot()    shot.save('my_screenshot_delay.png')

04、创建有声读物

厌倦了手动将您的 PDF 书籍转换为有声读物,那么这是你的自动化脚本,它使用 GTTS 模块将你的 PDF 文本转换为音频。

# Create Audiobooks# pip install gTTS# pip install PyPDF2from PyPDF2 import PdfFileReader as readerfrom gtts import gTTSdef create_audio(pdf_file):    read_Pdf = reader(open(pdf_file, 'rb'))    for page in range(read_Pdf.numPages):        text = read_Pdf.getPage(page).extractText()


    
        tts = gTTS(text, lang='en')        tts.save('page' + str(page) + '.mp3')create_audio('book.pdf')

05、PDF 编辑器

使用以下自动化脚本使用 Python 编辑 PDF 文件。该脚本使用 PyPDF4 模块,它是 PyPDF2 的升级版本,下面我编写了 Parse Text、Remove pages 等常用功能。

当你有大量 PDF 文件要编辑或需要以编程方式在 Python 项目中使用脚本时,这是一个方便的脚本。

# PDF Editor# pip install PyPDf4import PyPDF4# Parse the Text from PDFdef parse_text(pdf_file):    reader = PyPDF4.PdfFileReader(pdf_file)    for page in reader.pages:        print(page.extractText())# Remove Page from PDFdef remove_page(pdf_file, page_numbers):    filer = PyPDF4.PdfReader('source.pdf', 'rb')    out = PyPDF4.PdfWriter()    for index in page_numbers:        page = filer.pages[index]         out.add_page(page)with open('rm.pdf', 'wb') as f:        out.write(f)# Add Blank Page to PDFdef add_page(pdf_file, page_number):


    
    reader = PyPDF4.PdfFileReader(pdf_file)    writer = PyPDF4.PdfWriter()    writer.addPage()    with open('add.pdf', 'wb') as f:        writer.write(f)# Rotate Pagesdef rotate_page(pdf_file):    reader = PyPDF4.PdfFileReader(pdf_file)    writer = PyPDF4.PdfWriter()    for page in reader.pages:        page.rotateClockwise(90)        writer.addPage(page)    with open('rotate.pdf', 'wb') as f:        writer.write(f)# Merge PDFsdef merge_pdfs(pdf_file1, pdf_file2):    pdf1 = PyPDF4.PdfFileReader(pdf_file1)    pdf2 = PyPDF4.PdfFileReader(pdf_file2)    writer = PyPDF4.PdfWriter()    for page in pdf1.pages:        writer.addPage(page)    for page in pdf2.pages:        writer.addPage(page)    with open('merge.pdf', 'wb') as f:        writer.write(f)

06、迷你 Stackoverflow

作为一名程序员,我知道我们每天都需要 StackOverflow,但你不再需要在 Google 上搜索它。现在,在您继续处理项目的同时,在你的 CMD 中获得直接解决方案。通过使用 Howdoi 模块,你可以在命令提示符或终端中获得 StackOverflow 解决方案。你可以在下面找到一些可以尝试的示例。

# Automate Stackoverflow# pip install howdoi# Get Answers in CMD#example 1> howdoi how do i install python3# example 2> howdoi selenium Enter keys# example 3> howdoi how to install modules# example 4> howdoi Parse html with python# example 5> howdoi int not iterable error# example 6> howdoi how to parse pdf with python# example 7> howdoi Sort list in python# example 8> howdoi merge two lists in python# example 9>howdoi get last element in list python# example 10> howdoi fast way to sort list

07、自动化手机

此自动化脚本将帮助你使用 Python 中的 Android 调试桥 (ADB) 自动化你的智能手机。下面我将展示如何自动执行常见任务,例如滑动手势、呼叫、发送短信等等。

您可以了解有关 ADB 的更多信息,并探索更多令人兴奋的方法来实现手机自动化,让您的生活更轻松。




    
# Automate Mobile Phones# pip install opencv-pythonimport subprocessdef main_adb(cm):    p = subprocess.Popen(cm.split(' '), stdout=subprocess.PIPE, shell=True)    (output, _) = p.communicate()    return output.decode('utf-8')# Swipe def swipe(x1, y1, x2, y2, duration):    cmd = 'adb shell input swipe {} {} {} {} {}'.format(x1, y1, x2, y2, duration)    return main_adb(cmd)# Tap or Clickingdef tap(x, y):    cmd = 'adb shell input tap {} {}'.format(x, y)    return main_adb(cmd)# Make a Calldef make_call(number):    cmd = f"adb shell am start -a android.intent.action.CALL -d tel:{number}"    return main_adb(cmd)# Send SMSdef send_sms(number, message):    cmd = 'adb shell am start -a android.intent.action.SENDTO -d  sms:{} --es sms_body "{}"'.format(number, message)    return main_adb(cmd)# Download File From Mobile to PC


    
def download_file(file_name):    cmd = 'adb pull /sdcard/{}'.format(file_name)    return main_adb(cmd)# Take a screenshotdef screenshot():    cmd = 'adb shell screencap -p'    return main_adb(cmd)# Power On and Offdef power_off():    cmd = '"adb shell input keyevent 26"'    return main_adb(cmd)

08、监控 CPU/GPU 温度

你可能使用 CPU-Z 或任何规格监控软件来捕获你的 Cpu 和 Gpu 温度,但你也可以通过编程方式进行。好吧,这个脚本使用 Pythonnet 和 OpenhardwareMonitor 来帮助你监控当前的 Cpu 和 Gpu 温度。

你可以使用它在达到一定温度时通知自己,也可以在 Python 项目中使用它来简化日常生活。

# Get CPU/GPU Temperature# pip install pythonnetimport clrclr.AddReference("OpenHardwareMonitorLib")from OpenHardwareMonitorLib import *spec = Computer()spec.GPUEnabled = Truespec.CPUEnabled = Truespec.Open()# Get CPU Tempdef Cpu_Temp():    while True:


    
        for cpu in range(0, len(spec.Hardware[0].Sensors)):            if "/temperature" in str(spec.Hardware[0].Sensors[cpu].Identifier):                print(str(spec.Hardware[0].Sensors[cpu].Value))# Get GPU Tempdef Gpu_Temp()    while True:        for gpu in range(0, len(spec.Hardware[0].Sensors)):            if "/temperature" in str(spec.Hardware[0].Sensors[gpu].Identifier):                print(str(spec.Hardware[0].Sensors[gpu].Value))

09、Instagram 上传机器人

Instagram 是一个著名的社交媒体平台,你现在不需要通过智能手机上传照片或视频。你可以使用以下脚本以编程方式执行此操作。

# Upload Photos and Video on Insta# pip install instabotfrom instabot import Botdef Upload_Photo(img):    robot = Bot()    robot.login(username="user", password="pass")    robot.upload_photo(img, caption="Medium Article")    print("Photo Uploaded")def Upload_Video(video):    robot = Bot()    robot.login(username="user", password="pass"


    
)    robot.upload_video(video, caption="Medium Article")    print("Video Uploaded")def Upload_Story(img):    robot = Bot()    robot.login(username="user", password="pass")    robot.upload_story(img, caption="Medium Article")    print("Story Photos Uploaded")Upload_Photo("img.jpg")Upload_Video("video.mp4")

10、视频水印

使用此自动化脚本为你的视频添加水印,该脚本使用 Moviepy,这是一个方便的视频编辑模块。在下面的脚本中,你可以看到如何添加水印并且可以自由使用它。

# Video Watermark with Python# pip install moviepyfrom moviepy.editor import *clip = VideoFileClip("myvideo.mp4", audio=True) width,height = clip.size  text = TextClip("WaterMark", font='Arial', color='white', fontsize=28)set_color = text.on_color(size=(clip.w + text.w, text.h-10), color=(0,0,0), pos=(6,'center'), col_opacity=0.6)set_textPos = set_color.set_pos( lambda pos: (max(width/30,int(width-0.5* width* pos)),max(5*height/6,int(100* pos))) )Output = CompositeVideoClip([clip, set_textPos])Output.duration = clip.durationOutput.write_videofile("output.mp4", fps=30, codec='libx264')


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/148588