龙空技术网

9 大工作必备的 Python 自动化脚本

进击的Grey 473

前言:

现在姐妹们对“renamepython”可能比较关切,兄弟们都需要剖析一些“renamepython”的相关文章。那么小编同时在网上搜集了一些对于“renamepython””的相关文章,希望姐妹们能喜欢,大家一起来学习一下吧!

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

在这篇文章中,我们将探讨9个Python自动化场景,并提供相应的脚本示例,帮助您更高效地完成各种任务。

1.自动化文件管理

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

# Python script to sort files in a directory by their extension

import os

fromshutil 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))

说明:

此Python脚本根据文件扩展名将文件分类到子目录中,以组织目录中的文件。它识别文件扩展名并将文件移动到适当的子目录。这对于整理下载文件夹或组织特定项目的文件很有用。

1.2 删除空文件夹

# Python script to remove empty folders in a directory

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)

说明:

此Python脚本可以搜索并删除指定目录中的空文件夹。它可以帮助您在处理大量数据时保持文件夹结构的干净整洁。

1.3 重命名多个文件

# Python script to rename multiple files in a directory

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))

说明:

此Python脚本允许您同时重命名目录中的多个文件。它将旧名称和新名称作为输入,并将所有符合指定条件的文件的旧名称替换为新名称。

2. 使用Python进行网页抓取

2.1从网站提取数据

# Python script for web scraping to extract data from a website

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

说明:

此Python脚本利用requests和BeautifulSoup库从网站上抓取数据。它获取网页内容并使用BeautifulSoup解析HTML。您可以自定义脚本来提取特定数据,例如标题、产品信息或价格。

2.2从网站提取数据

# Python script to download images in bulk from a website

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)

说明:

此Python脚本旨在从网站批量下载图像。它为网站提供返回图像URL数组的JSON API。然后,该脚本循环访问URL并下载图像,并将其保存到指定目录。

2.3自动提交表单

# Python script to automate form submissions on a website

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

说明:

此Python脚本通过发送带有表单数据的POST请求来自动在网站上提交表单。您可以通过提供URL和要提交的必要表单数据来自定义脚本。

3. 文本处理和操作

3.1计算文本文件中的字数

# Python script to count words in a text file

def count_words(file_path):

with open(file_path, 'r') as f:

text = f.read()

word_count = len(text.split())

return word_count

说明:

此Python脚本读取一个文本文件并计算它包含的单词数。它可用于快速分析文本文档的内容或跟踪写作项目中的字数情况。

3.2从网站提取数据

# Python script to find and replace text in a file

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)

说明:

此Python脚本能搜索文件中的特定文本并将其替换为所需的文本。它对于批量替换某些短语或纠正大型文本文件中的错误很有帮助。

3.3生成随机文本

# Python script to generate random text

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

说明:

此Python脚本生成指定长度的随机文本。它可以用于测试和模拟,甚至可以作为创意写作的随机内容来源。

4.电子邮件自动化

4.1发送个性化电子邮件

# Python script to send personalized emails to a list of recipients

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()

说明:

此Python脚本使您能够向收件人列表发送个性化电子邮件。您可以自定义发件人的电子邮件、密码、主题、正文和收件人电子邮件列表。请注意,出于安全原因,您在使用Gmail时应使用应用程序专用密码。

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

# Python script to send emails with file attachments

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()

说明:

此 Python 脚本允许您发送带有文件附件的电子邮件。只需提供发件人的电子邮件、密码、收件人的电子邮件、主题、正文以及要附加的文件的路径。

4.3自动邮件提醒

# Python script to send automatic email reminders

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()

说明:

此Python脚本根据指定日期发送自动电子邮件提醒。它对于设置重要任务或事件的提醒非常有用,确保您不会错过最后期限。

5.自动化Excel电子表格

5.1Excel读&写

# Python script to read and write data to an Excel spreadsheet

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)

说明:

此Python脚本使用pandas库从Excel电子表格读取数据并将数据写入新的Excel文件。它允许您通过编程处理Excel文件,使数据操作和分析更加高效。

5.2数据分析和可视化

# Python script for data analysis and visualization with pandas and matplotlib

import pandas as pd

import matplotlib.pyplot as plt

def analyze_and_visualize_data(data):

# Your code here for data analysis and visualization

pass

说明:

此Python脚本使用pandas和matplotlib库来进行数据分析和可视化。它使您能够探索数据集、得出结论并得到数据的可视化表示。

5.3合并多个工作表

# Python script to merge multiple Excel sheets into a single sheet

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)

说明:

此Python脚本将Excel文件中多个工作表的数据合并到一个工作表中。当您将数据分散在不同的工作表中但想要合并它们以进行进一步分析时,这会很方便。

6.与数据库交互

6.1连接到一个数据库

# Python script to connect to a database and execute queries

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

说明:

此Python脚本允许您连接到SQLite数据库并执行查询。您可以使用适当的Python数据库驱动程序将其调整为与其他数据库管理系统(例如MySQL或PostgreSQL)配合使用。

6.2执行SQL查询

# Python script to execute SQL queries on a database

import sqlite3

def execute_query(connection, query):

cursor = connection.cursor()

cursor.execute(query)

result = cursor.fetchall()

return result

说明:

此Python脚本是在数据库上执行SQL查询的通用函数。您可以将查询作为参数与数据库连接对象一起传递给函数,它将返回查询结果。

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)

说明:

此Python 脚本允许您创建数据库的备份并在需要时恢复它们。这是预防您的宝贵数据免遭意外丢失的措施。

7.社交媒体自动化

7.1发送个性化电子邮件

# Python script to automate posting on Twitter and 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)

说明:

此 Python 脚本利用Twython和facebook-sdk库自动在Twitter和Facebook上发布内容。您可以使用它将 Python 脚本中的更新、公告或内容直接共享到您的社交媒体配置文件。

7.2社交媒体自动共享

# Python script to automatically share content on social media platforms

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)

说明:

此Python 脚本自动在Twitter和Facebook上共享随机内容。您可以对其进行自定义,以从列表或数据库中获取内容并定期在社交媒体平台上共享。

7.3 抓取社交媒体数据

# Python script for scraping data from social media platforms

import requests

def scrape_social_media_data(url):

response = requests.get(url)

# Your code here to extract relevant data from the response

说明:

此Python脚本执行网页抓取以从社交媒体平台提取数据。它获取所提供URL的内容,然后使用BeautifulSoup等技术来解析HTML并提取所需的数据。

8.自动化系统任务

8.1管理系统进程

# Python script to manage system processes

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()

说明:

此Python 脚本使用 psutil 库来管理系统进程。它允许您检索正在运行的进程列表并通过名称终止特定进程。

8.2使用 Cron 安排任务

# Python script to schedule tasks using cron syntax

from crontab import CronTab

def schedule_task(command, schedule):

cron = CronTab(user=True)

job = cron.new(command=command)

job.setall(schedule)

cron.write()

说明:

此Python 脚本利用 crontab 库来使用 cron 语法来安排任务。它使您能够定期或在特定时间自动执行特定命令。

8.3自动邮件提醒

# Python script to monitor disk space and send an alert if it's low

import psutil

def check_disk_space(minimum_threshold_gb):

disk = psutil.disk_usage('/')

free_space_gb = disk.free / (230) # Convert bytes to GB

if free_space_gb < minimum_threshold_gb:

# Your code here to send an alert (email, notification, etc.)

pass

说明:

此Python 脚本监视系统上的可用磁盘空间,并在其低于指定阈值时发送警报。它对于主动磁盘空间管理和防止由于磁盘空间不足而导致潜在的数据丢失非常有用。

9.自动化图像编辑

9.1图像大小调整和裁剪

# Python script to resize and crop images

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)

说明:

此Python脚本使用Python图像库(PIL)来调整图像大小和裁剪图像。它有助于为不同的显示分辨率或特定目的准备图像。

9.2为图像添加水印

# Python script to add watermarks to images

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)

说明:

此Python 脚本向图像添加水印。您可以自定义水印文本、字体和位置,以实现您图像的个性化。

9.3创建图像缩略图

# Python script to create image thumbnails

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)

说明:

此Python 脚本从原始图像创建缩略图,这对于生成预览图像或减小图像大小以便更快地在网站上加载非常有用。

小结

以上是本文为您介绍的9个可以用于工作自动化的最佳Python脚本。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

点击标题可跳转

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

告诉你更多细节干货

欢迎围观我的朋友圈

标签: #renamepython