python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python自动化代码

一文总结17个工作必备的Python自动化代码

作者:东眠的鱼

Python是一种流行的编程语言,以其简单性和可读性而闻名,因其能够提供大量的库和模块,它成为了自动化各种任务的绝佳选择,让我们进入自动化的世界,探索17个可以简化工作并节省时间精力的Python脚本,需要的朋友可以参考下

1.自动化文件管理

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

# Python script to sort files in a directory by their extension
import os
fromshutil import move
defsort_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)
ifnot os.path.exists(destination_directory):
os.makedirs(destination_directory)
move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))

说明:

1.2 删除空文件夹

# Python script to remove empty folders in a directory
import os
defremove_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)
ifnot os.listdir(folder_path):
                os.rmdir(folder_path)

说明:

1.3 重命名多个文件

# Python script to rename multiple files in a directory
import os
defrename_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从网站提取数据

# Python script for web scraping to extract data from a website
import requests
from bs4 import BeautifulSoup
defscrape_data(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
# Your code here to extract relevant data from the website

说明:

2.2从网站提取数据

# Python script to download images in bulk from a website
import requests
defdownload_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自动提交表单

# Python script to automate form submissions on a website
import requests
defsubmit_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计算文本文件中的字数

# Python script to count words in a text file
defcount_words(file_path):
with open(file_path, 'r') as f:
        text = f.read()
        word_count = len(text.split())
return word_count

说明:

3.2从网站提取数据

# Python script to find and replace text in a file
deffind_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生成随机文本

# 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 inrange(length))
    return random_text

说明:

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
defsend_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通过电子邮件发送文件附件

# 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
defsend_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自动邮件提醒

# Python script to send automatic email reminders
import smtplib
from email.mime.text import MIMEText
from datetime import datetime, timedelta
defsend_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.1xcel读&写

# Python script to read and write data to an Excel spreadsheet
import pandas as pd
defread_excel(file_path):
    df = pd.read_excel(file_path)
return df
defwrite_to_excel(data, file_path):
    df = pd.DataFrame(data)
    df.to_excel(file_path, index=False)

说明:

5.2数据分析和可视化

# Python script for data analysis and visualization with pandas and matplotlib
import pandas as pd
import matplotlib.pyplot as plt
defanalyze_and_visualize_data(data):
# Your code here for data analysis and visualization
pass

说明:

5.3合并多个工作表

# Python script to merge multiple Excel sheets into a single sheet
import pandas as pd
defmerge_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连接到一个数据库

# Python script to connect to a database and execute queries
import sqlite3
defconnect_to_database(database_path):
    connection = sqlite3.connect(database_path)
return connection
defexecute_query(connection, query):
    cursor = connection.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
return result

说明:

6.2执行SQL查询

# Python script to execute SQL queries on a database
importsqlite3
defexecute_query(connection, query):
cursor = connection.cursor()
cursor.execute(query)
result = cursor.fetchall()
returnresult

说明:

6.3数据备份与恢复

import shutil
defbackup_database(database_path, backup_directory):
    shutil.copy(database_path, backup_directory)
defrestore_database(backup_path, database_directory):
    shutil.copy(backup_path, database_directory)

说明:

7.社交媒体自动化

7.1发送个性化电子邮件

# Python script to automate posting on Twitter and Facebook
from twython import Twython
import facebook
defpost_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)
defpost_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社交媒体自动共享

# Python script to automatically share content on social media platforms
import random
defget_random_content():
# Your code here to retrieve random content from a list or database
pass
defpost_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)
defpost_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 抓取社交媒体数据

# Python script for scraping data from social media platforms
import requests
defscrape_social_media_data(url):
    response = requests.get(url)
# Your code here to extract relevant data from the response

说明:

8.自动化系统任务

8.1管理系统进程

# Python script to manage system processes
import psutil
defget_running_processes():
return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]
defkill_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 安排任务

# Python script to schedule tasks using cron syntax
from crontab import CronTab
defschedule_task(command, schedule):
cron = CronTab(user=True)
job = cron.new(command=command)
job.setall(schedule)
cron.write()

说明:

8.3自动邮件提醒

# Python script to monitor disk space and send an alert if it's low
import psutil
defcheck_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

说明:

9.自动化图像编辑

9.1图像大小调整和裁剪

# Python script to resize and crop images
from PIL import Image
defresize_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)
defcrop_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为图像添加水印

# Python script to add watermarks to images
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
defadd_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创建图像缩略图

# Python script to create image thumbnails
from PIL import Image
defcreate_thumbnail(input_path, output_path, size=(128, 128)):
image = Image.open(input_path)
image.thumbnail(size)
image.save(output_path)

说明:

小结

10.网络自动化

10.1检查网站状态

# Python script to check the status of a website
import requests
defcheck_website_status(url):
response = requests.get(url)
if response.status_code == 200:
# Your code here to handle a successful response
else:
# Your code here to handle an unsuccessful response

说明:

10.2自动 FTP 传输

# Python script to automate FTP file transfers
from ftplib import FTP
defftp_file_transfer(host, username, password, local_file_path, remote_file_path):
with FTP(host) as ftp:
ftp.login(user=username, passwd=password)
with open(local_file_path, 'rb') as f:
ftp.storbinary(f'STOR {remote_file_path}', f)

说明:

10.3网络配置设置

# Python script to automate network device configuration
from netmiko import ConnectHandler
defconfigure_network_device(host, username, password, configuration_commands):
device = {
'device_type': 'cisco_ios',
'host': host,
'username': username,
'password': password,}
with ConnectHandler(device) as net_connect:
net_connect.send_config_set(configuration_commands)

说明:

11. 数据清理和转换

11.1从数据中删除重复项

# Python script to remove duplicates from data
import pandas as pd
defremove_duplicates(data_frame):
cleaned_data = data_frame.drop_duplicates()
return cleaned_data

说明:

11.2数据标准化

# Python script for data normalization
import pandas as pd
defnormalize_data(data_frame):
normalized_data = (data_frame - data_frame.min()) / (data_frame.max() -  data_frame.min())
return normalized_data

说明:

11.3处理缺失值

# Python script to handle missing values in data
import pandas as pd
defhandle_missing_values(data_frame):
filled_data = data_frame.fillna(method='ffill')
return filled_data

说明:

12. 自动化 PDF 操作

12.1从PDF中提取文本

# Python script to extract text from PDFs
importPyPDF2
def extract_text_from_pdf(file_path):
withopen(file_path, 'rb') as f:
pdf_reader = PyPDF2.PdfFileReader(f)
text = ''
for page_num inrange(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
text += page.extractText()
returntext

说明:

12.2合并多个PDF

# Python script to merge multiple PDFs into a single PDF
import PyPDF2
defmerge_pdfs(input_paths, output_path):
pdf_merger = PyPDF2.PdfMerger()
for path in input_paths:
with open(path, 'rb') as f:
pdf_merger.append(f)
with open(output_path, 'wb') as f:
pdf_merger.write(f)

说明:

12.3添加密码保护

# Python script to add password protection to a PDF
import PyPDF2
defadd_password_protection(input_path, output_path, password):
with open(input_path, 'rb') as f:
pdf_reader = PyPDF2.PdfFileReader(f)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(pdf_reader.numPages):
page = pdf_reader.getPage(page_num)
pdf_writer.addPage(page)
pdf_writer.encrypt(password)
with open(output_path, 'wb') as output_file:
pdf_writer.write(output_file)

说明:

13. 自动化GUI

13.1自动化鼠标和键盘

# Python script for GUI automation using pyautogui
import pyautogui
defautomate_gui():
# Your code here for GUI automation using pyautogui
pass

说明:

13.2创建简单的 GUI 应用程序

# Python script to create simple GUI applications using tkinter
import tkinter as tk
defcreate_simple_gui():
# Your code here to define the GUI elements and behavior
pass

说明:

13.3处理GUI事件

# Python script to handle GUI events using tkinter
import tkinter as tk
defhandle_gui_events():
pass
defon_button_click():
# Your code here to handle button click event
root = tk.Tk()
button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack()
root.mainloop()

说明:

14. 自动化测试

14.1使用 Python 进行单元测试

# Python script for unit testing with the unittest module
import unittest
defadd(a, b):
return a + b
classTestAddFunction(unittest.TestCase):
deftest_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
deftest_add_negative_numbers(self):
self.assertEqual(add(-2, -3), -5)
deftest_add_zero(self):
self.assertEqual(add(5, 0), 5)
if __name__ == '__main__':
unittest.main()

说明:

14.2用于Web测试的Selenium

# Python script for web testing using Selenium
from selenium import webdriver
defperform_web_test():
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# Your code here to interact with web elements and perform tests
driver.quit()

说明:

14.3测试自动化框架

# Python script for building test automation frameworks
# Your code here to define the framework architecture and tools

说明:

15. 自动化云服务

15.1向云空间上传文件

# Python script to automate uploading files to cloud storage
# Your code here to connect to a cloud storage service (e.g., AWS S3, Google Cloud Storage)
# Your code here to upload files to the cloud storage

说明:

15.2管理AWS资源

# Python script to manage AWS resources using Boto3
import boto3
def create_ec2_instance(instance_type, image_id, key_name, security_group_ids):
ec2 = boto3.resource('ec2')
instance = ec2.create_instances(
ImageId=image_id,
InstanceType=instance_type,
KeyName=key_name,
SecurityGroupIds=security_group_ids,
MinCount=1,
MaxCount=1)
return instance[0].id 

说明:

15.3自动化Google云端硬盘

# Python script to automate interactions with Google Drive
# Your code here to connect to Google Drive using the respective API
# Your code here to perform tasks such as uploading files, creating folders, etc.

说明:

16. 财务自动化

16.1分析股票价格

# Python script for stock price analysis
# Your code here to fetch stock data using a financial API (e.g., Yahoo Finance)
# Your code here to analyze the data and derive insights

说明:

16.2货币汇率

# Python script to fetch currency exchange rates
# Your code here to connect to a currency exchange API (e.g., Fixer.io, Open Exchange Rates)
# Your code here to perform currency conversions and display exchange rates

说明:

16.3预算追踪

# Python script for budget tracking and analysis
# Your code here to read financial transactions from a CSV or Excel file
# Your code here to calculate income, expenses, and savings
# Your code here to generate reports and visualize budget data

说明:

17. 自然语言处理

17.1情感分析

# Python script for sentiment analysis using NLTK or other NLP libraries
importnltk
fromnltk.sentiment import SentimentIntensityAnalyzer
defanalyze_sentiment(text):
nltk.download('vader_lexicon')
sia = SentimentIntensityAnalyzer()
sentiment_score = sia.polarity_scores(text)
return sentiment_score

说明:

17.2文本摘要

# Python script for text summarization using NLP techniques
# Your code here to read the text data and preprocess it (e.g., removing stop words)
# Your code here to generate the summary using techniques like TF-IDF, TextRank, or BERT

说明:

17.3语言翻译

# Python script for language translation using NLP libraries
# Your code here to connect to a translation API (e.g., Google Translate, Microsoft Translator)
# Your code here to translate text between different languages

说明:

结论

一些经常被问到的问题

1.Python适合自动化吗?

2.使用 Python 自动化任务有哪些好处?

3. 我可以在我的项目中使用这些脚本吗?

4. 我需要安装任何库来运行这些脚本吗?

5. 我可以将这些脚本用于商业用途吗?

6. 如何针对我的特定项目进一步优化这些脚本?

7. 我可以使用Python自动执行复杂的任务吗?

8. 自动化任务时是否有任何安全考虑?

总结

以上就是一文总结17个工作必备的Python自动化代码的详细内容,更多关于Python自动化代码的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文