分享17个Python超级好用提高工作效率的自动化脚本

分享17个Python超级好用提高工作效率的自动化脚本

Python以其简单易读的特性而声名鹊起,是一门备受欢迎的编程语言。其丰富的库和模块使其成为自动化各种任务的理想选择。在下面的集合中,提供了17个多功能的Python脚本,可帮助您简化工作流程,高效节省时间。

1. 自动化文件管理

1.1 对目录中的文件进行排序

import os
from shutil import move

def sort_files(directory_path):
    for filename in os.listdir(directory_path):
        if os.path.isfile(os.path.join(directory_path, filename)):
            file_extension = filename.split('.')[-1]
            destination_directory = os.path.join(directory_path, file_extension)

            if not os.path.exists(destination_directory):
                os.makedirs(destination_directory)

            move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))

1.2 删除空文件夹

import os

def remove_empty_folders(directory_path):
    for root, dirs, files in os.walk(directory_path, topdown=False):
        for folder in dirs:
            folder_path = os.path.join(root, folder)
            if not os.listdir(folder_path):
                os.rmdir(folder_path)

1.3 重命名多个文件

import os

def rename_files(directory_path, old_name, new_name):
    for filename in os.listdir(directory_path):
        if old_name in filename:
            new_filename = filename.replace(old_name, new_name)
            os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))

2. 使用Python进行网页抓取

2.1 从网站提取数据

import requests
from bs4 import BeautifulSoup

def scrape_data(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    # Your code here to extract relevant data from the website

2.2 从网站下载图像

import requests

def download_images(url, save_directory):
    response = requests.get(url)

    if response.status_code == 200:
        images = response.json()  # Assuming the API returns a JSON array of image URLs

        for index, image_url in enumerate(images):
            image_response = requests.get(image_url)

            if image_response.status_code == 200:
                with open(f"{save_directory}/image_{index}.jpg", "wb") as f:
                    f.write(image_response.content)

2.3 自动提交表单

import requests

def submit_form(url, form_data):
    response = requests.post(url, data=form_data)

    if response.status_code == 200:
        # Your code here to handle the response after form submission

3. 文本处理和操作

3.1 计算文本文件中的字数

def count_words(file_path):
    with open(file_path, 'r') as f:
        text = f.read()
        word_count = len(text.split())
    return word_count

3.2 查找并替换文本文件中的文本

def find_replace(file_path, search_text, replace_text):
    with open(file_path, 'r') as f:
        text = f.read()
        modified_text = text.replace(search_text, replace_text)

    with open(file_path, 'w') as f:
        f.write(modified_text)

3.3 生成随机文本

import random
import string

def generate_random_text(length):
    letters = string.ascii_letters + string.digits + string.punctuation
    random_text = ''.join(random.choice(letters) for i in range(length))
    return random_text

4. 电子邮件自动化

4.1 发送个性化电子邮件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_personalized_email(sender_email, sender_password, recipients, subject, body):
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender_email, sender_password)

    for recipient_email in recipients:
        message = MIMEMultipart()
        message['From'] = sender_email
        message['To'] = recipient_email
        message['Subject'] = subject
        message.attach(MIMEText(body, 'plain'))
        server.sendmail(sender_email, recipient_email, message.as_string())

    server.quit()

4.2 通过电子邮件发送文件附件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

def send_email_with_attachment(sender_email, sender_password, recipient_email, subject, body, file_path):
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender_email, sender_password)

    message = MIMEMultipart()
    message['From'] = sender_email
    message['To'] = recipient_email
    message['Subject'] = subject
    message.attach(MIMEText(body, 'plain'))

    with open(file_path, "rb") as attachment:
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(attachment.read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', f"attachment; filename= {file_path}")
        message.attach(part)

    server.sendmail(sender_email, recipient_email, message.as_string())
    server.quit()

4.3 自动邮件提醒

import smtplib
from email.mime.text import MIMEText
from datetime import datetime, timedelta

def send_reminder_email(sender_email, sender_password, recipient_email, subject, body, reminder_date):
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender_email, sender_password)

    now = datetime.now()
    reminder_date = datetime.strptime(reminder_date, '%Y-%m-%d')

    if now.date() == reminder_date.date():
        message = MIMEText(body, 'plain')
        message['From'] = sender_email
        message['To'] = recipient_email
        message['Subject'] = subject
        server.sendmail(sender_email, recipient_email, message.as_string())

    server.quit()

5. 自动化Excel电子表格

5.1 Excel读&写

import pandas as pd

def read_excel(file_path):
    df = pd.read_excel(file_path)
    return df

def write_to_excel(data, file_path):
    df = pd.DataFrame(data)
    df.to_excel(file_path, index=False)

5.2 数据分析和可视化

import pandas as pd
import matplotlib.pyplot as

 plt

def analyze_and_visualize_data(data):
    # Your code here for data analysis and visualization
    pass

5.3 合并多个工作表

import pandas as pd

def merge_sheets(file_path, output_file_path):
    xls = pd.ExcelFile(file_path)
    df = pd.DataFrame()

    for sheet_name in xls.sheet_names:
        sheet_df = pd.read_excel(xls, sheet_name)
        df = df.append(sheet_df)

    df.to_excel(output_file_path, index=False)

6. 与数据库交互

6.1 连接到一个数据库

import sqlite3

def connect_to_database(database_path):
    connection = sqlite3.connect(database_path)
    return connection

def execute_query(connection, query):
    cursor = connection.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
    return result

6.2 执行SQL查询

import sqlite3

def execute_query(connection, query):
    cursor = connection.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
    return result

6.3 数据备份与恢复

import shutil

def backup_database(database_path, backup_directory):
    shutil.copy(database_path, backup_directory)

def restore_database(backup_path, database_directory):
    shutil.copy(backup_path, database_directory)

7. 社交媒体自动化

7.1 发布内容到Twitter和Facebook

from twython import Twython
import facebook

def post_to_twitter(api_key, api_secret, access_token, access_token_secret, message):
    twitter = Twython(api_key, api_secret, access_token, access_token_secret)
    twitter.update_status(status=message)

def post_to_facebook(api_key, api_secret, access_token, message):
    graph = facebook.GraphAPI(access_token)
    graph.put_object(parent_object='me', connection_name='feed', message=message)

7.2 社交媒体自动共享

import random

def get_random_content():
    # Your code here to retrieve random content from a list or database
    pass

def post_random_content_to_twitter(api_key, api_secret, access_token, access_token_secret):
    content = get_random_content()
    post_to_twitter(api_key, api_secret, access_token, access_token_secret, content)

def post_random_content_to_facebook(api_key, api_secret, access_token):
    content = get_random_content()
    post_to_facebook(api_key, api_secret, access_token, content)

7.3 抓取社交媒体数据

import requests

def scrape_social_media_data(url):
    response = requests.get(url)
    # Your code here to extract relevant data from the response

8. 自动化系统任务

8.1 管理系统进程

import psutil

def get_running_processes():
    return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]

def kill_process_by_name(process_name):
    for p in psutil.process_iter(['pid', 'name', 'username']):
        if p.info['name'] == process_name:
            p.kill()

8.2 使用Cron安排任务

from crontab import CronTab

def schedule_task(command, schedule):
    cron = CronTab(user=True)
    job = cron.new(command=command)
    job.setall(schedule)
    cron.write()

8.3 自动邮件提醒

import psutil

def check_disk_space(minimum_threshold_gb):
    disk = psutil.disk_usage('/')
    free_space_gb = disk.free / (2**30)  # Convert bytes to GB

    if free_space_gb < minimum_threshold_gb:
        # Your code here to send an alert (email, notification, etc.)
        pass

9. 自动化图像编辑

9.1 图像大小调整和裁剪

from PIL import Image

def resize_image(input_path, output_path, width, height):
    image = Image.open(input_path)
    resized_image = image.resize((width, height), Image.ANTIALIAS)
    resized_image.save(output_path)

def crop_image(input_path, output_path, left, top, right, bottom):
    image = Image.open(input_path)
    cropped_image = image.crop((left, top, right, bottom))
    cropped_image.save(output_path)

9.2 为图像添加水印

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

def add_watermark(input_path, output_path, watermark_text):
    image = Image.open(input_path)
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype('arial.ttf', 36)
    draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)
    image.save(output_path)

9.3 创建图像缩略图

from PIL import Image

def create_thumbnail(input_path, output_path, size=(128, 128)):
    image = Image.open(input_path)
    image.thumbnail(size)
    image.save(output_path)

这套脚本集涵盖了广泛的领域,涉及文件管理、网页抓取、文本处理、电子邮件自动化、Excel电子表格处理、数据库交互、社交媒体自动化、系统任务管理以及图像编辑等多个方面。根据您的具体需求,您可以有选择地应用其中的脚本,以便更全面、高效地简化和优化您的工作流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:分享17个Python超级好用提高工作效率的自动化脚本 - Python技术站

(2)
上一篇 2024年1月22日
下一篇 2024年1月22日

相关文章

  • PowerShell实现IE Web自动化

    介绍 在本文中,我们将学习如何使用PowerShell实现IE Web自动化。 所谓IE Web自动化,是指使用PowerShell脚本来控制Internet Explorer浏览器进行各种自动化操作,例如打开网页、填写表单、点击按钮等。 准备工作 首先,需要确保你的系统上已经安装了PowerShell和Internet Explorer浏览器。接下来,我们…

    2024年1月16日
    00
  • JavaScript 实现自己的安卓手机自动化工具脚本(推荐)

    JavaScript 实现安卓手机自动化工具脚本攻略 1. 准备工作 在开始编写 JavaScript 脚本之前,需要进行一些准备工作:- 安装 Node.js 环境- 安装 Appium 并启动 Appium 服务器- 配置安卓手机的开发者选项和 USB 调试模式 2. 安装相关依赖 在命令行中使用 npm 安装 Appium 客户端库和相关依赖: npm…

    自动化办公 2024年1月20日
    00
  • RPA(机器人流程自动化)终极指南!

    什么是机器人过程自动化? 机器人过程流程自动化 (RPA) 是一种模仿人类与软件交互以执行大量、可重复任务的方式的技术。RPA 技术创建的软件程序或机器人可以登录应用程序、输入数据、计算和完成任务,并根据需要在应用程序或工作流之间复制数据。 当与AI和机器学习相结合时,RPA 可以通过使用光学字符识别 (OCR) 阅读文本或手写,使用自然语言处理 (NLP)…

    自动化办公 2023年2月3日
    00
  • Vue-Jest 自动化测试基础配置详解

    Vue-Jest 自动化测试基础配置详解 安装 Jest 和 Vue-Jest 首先,你需要安装 Jest 和 Vue-Jest 作为你的项目的开发依赖。你可以使用以下命令来安装它们: npm install –save-dev jest vue-jest @vue/test-utils 配置 Jest 接下来,你需要在项目中配置 Jest。创建一个 je…

    自动化办公 2024年1月17日
    00
  • 5个Python自动化运维脚本分享

    5个Python自动化运维脚本分享攻略 1. 确定需求和目标 在编写自动化运维脚本之前,首先需要确定清楚需求和目标。比如,需要自动化进行服务器备份、日志监控、自动部署等。确切的需求和目标将有助于确定脚本的具体功能和流程。 2. 选择合适的Python库和工具 Python拥有丰富的库和工具可以用于自动化运维,比如Fabric、Paramiko、Request…

    自动化办公 2024年1月19日
    00
  • python自动化八大定位元素讲解

    自动化测试在现代软件开发中扮演着至关重要的角色,而元素定位则是其中不可或缺的一环。在Python自动化领域,我们掌握八大元素定位技巧,将能事半功倍。 1. 通过ID定位元素 from selenium import webdriver driver = webdriver.Chrome() element = driver.find_element_by_i…

    2024年1月16日
    00
  • 什么是Python自动化办公?它能提升哪些工作效率?

    所谓的Python自动化办公,是利用Python编写一系列脚本,以自动完成各种办公任务的过程。它可以提高生产效率,减少人工干预,解放人力资源,让人们更加专注于创造性的工作。 Python自动化办公主要有以下优势: 自动化任务:Python自动化可以自动完成重复性的任务,提高生产效率,减少人工错误。 任务的批处理:Python自动化可以自动处理多个文件或目录。…

    2023年2月26日
    00
  • Java+TestNG接口自动化入门详解

    Java+TestNG接口自动化入门详解 简介 本教程将详细介绍如何使用Java和TestNG进行接口自动化测试。我们将包括设置环境、创建测试用例、运行测试以及生成报告等方面的内容。接下来将通过具体步骤和示例说明来讲解。 步骤 步骤一:环境准备 首先,我们需要安装Java开发环境和TestNG测试框架。 安装Java开发环境: 访问Java官网下载并安装适合…

    自动化办公 2024年1月20日
    00
合作推广
合作推广
分享本页
返回顶部