5 个用于自动化的杀手级 Python 脚本

2023-05-16

Python 是一种功能强大的语言,广泛用于自动执行各种任务。无论您是开发人员、系统管理员,还是只是想通过自动化日常任务来节省时间的人,Python 都能满足您的需求。

这里有 5 个 Python 脚本,可以帮助您自动执行各种任务

文章目录

    • 技术交流
    • 1.文件传输脚本
    • 2.系统监控脚本:
    • 3.Web 抓取脚本(最常用)
    • 4.电子邮件自动化脚本
    • 5. 密码管理器脚本
    • 结论

技术交流

技术要学会分享、交流,不建议闭门造车。 本文技术由粉丝群小伙伴分享汇总。源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:dkl88191,备注:来自CSDN +技术交流
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

1.文件传输脚本

Python 中的文件传输脚本是一组指令或用 Python 编程语言编写的程序,用于自动化通过网络或在计算机之间传输文件的过程。

Python 提供了几个可用于创建文件传输脚本的库和模块,例如 socket、ftplib、smtplib和paramiko 等。

下面是一个简单的 Python 文件传输脚本示例,它使用 socket 模块通过网络传输文件:

import socket

# create socket
s = socket.socket()

# bind socket to a address and port
s.bind(('localhost', 12345))

# put the socket into listening mode
s.listen(5)

print('Server listening...')

# forever loop to keep server running
while True:
    # establish connection with client
    client, addr = s.accept()
    print(f'Got connection from {addr}')

    # receive the file name
    file_name = client.recv(1024).decode()

    try:
        # open the file for reading in binary
        with open(file_name, 'rb') as file:
            # read the file in chunks
            while True:
                chunk = file.read(1024)
                if not chunk:
                    break
                # send the chunk to the client
                client.sendall(chunk)

        print(f'File {file_name} sent successfully')
    except FileNotFoundError:
        # if file not found, send appropriate message
        client.sendall(b'File not found')
        print(f'File {file_name} not found')

    # close the client connection
    client.close()

该脚本运行一个服务器,该服务器侦听地址 localhost 和端口12345上的传入连接。当客户端连接时,服务器从客户端接收文件名,然后读取文件的内容并将其以块的形式发送给客户端。如果找不到该文件,服务器将向客户端发送适当的消息。

如上所述,还有其他库和模块可用于在 python 中创建文件传输脚本,例如使用 ftp 协议连接和传输文件的ftplib和用于 SFTP(SSH 文件传输协议)传输的paramiko 。

可以定制脚本以匹配特定要求或场景。

2.系统监控脚本:

系统监控是一种 Python 脚本,用于监控计算机或网络的性能和状态。该脚本可用于跟踪各种指标,例如 CPU 使用率、内存使用率、磁盘空间、网络流量和系统正常运行时间。该脚本还可用于监视某些事件或条件,例如错误的发生或特定服务的可用性。例如:

import psutil

# Get the current CPU usage
cpu_usage = psutil.cpu_percent()

# Get the current memory usage
memory_usage = psutil.virtual_memory().percent

# Get the current disk usage
disk_usage = psutil.disk_usage("/").percent

# Get the network activity
# Get the current input/output data rates for each network interface
io_counters = psutil.net_io_counters(pernic=True)
for interface, counters in io_counters.items():
    print(f"Interface {interface}:")
    print(f"  bytes sent: {counters.bytes_sent}")
    print(f"  bytes received: {counters.bytes_recv}")

# Get a list of active connections
connections = psutil.net_connections()
for connection in connections:
    print(f"{connection.laddr} <-> {connection.raddr} ({connection.status})")

# Print the collected data
print(f"CPU usage: {cpu_usage}%")
print(f"Memory usage: {memory_usage}%")
print(f"Disk usage: {disk_usage}%")

该脚本使用 psutil 模块中的 cpu_percent、virtual_memory 和 disk_usage 函数分别检索当前的 CPU 使用率、内存使用率和磁盘使用率。virtual_memory 函数返回一个具有各种属性的对象,例如内存总量以及已用和空闲内存量。disk_usage 函数将路径作为参数并返回一个对象,该对象具有诸如磁盘上的总空间量以及已用和可用空间量等属性。

3.Web 抓取脚本(最常用)

此脚本可用于从网站提取数据并将其存储在结构化格式中,例如电子表格或数据库。这对于收集数据进行分析或跟踪网站上的更改很有用。例如:

import requests
from bs4 import BeautifulSoup

# Fetch a web page
page = requests.get("http://www.example.com")

# Parse the HTML content
soup = BeautifulSoup(page.content, "html.parser")

# Find all the links on the page
links = soup.find_all("a")

# Print the links
for link in links:
    print(link.get("href"))

在这里,您可以看到 BeautifulSoup 包的强大功能。你可以使用这个包找到任何类型的 dom 对象,因为我已经展示了如何找到页面上的所有链接。您可以修改脚本以抓取其他类型的数据,或导航到站点的不同页面。

您还可以使用 find 方法查找特定元素,或使用带有附加参数的 find_all 方法来过滤结果。

4.电子邮件自动化脚本

此脚本可用于根据特定条件自动发送电子邮件。例如,您可以使用此脚本向您的团队发送每日报告,或者在重要的截止日期临近时向您自己发送提醒。以下是如何使用 Python 发送电子邮件的示例:

import smtplib
from email.mime.text import MIMEText

# Set the SMTP server and login credentials
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your@email.com"
pd = "yourpassword"

# Set the email parameters
recipient = "recipient@email.com"
subject = "Test email from Python"
body = "This is a test email sent from Python."

# Create the email message
msg = MIMEText(body)
msg["Subject"] = subject
msg["To"] = recipient
msg["From"] = username

# Send the email
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.send_message(msg)
server.quit()import smtplib
from email.mime.text import MIMEText

# Set the SMTP server and login credentials
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your@email.com"
pd = "yourpassword"

# Set the email parameters
recipient = "recipient@email.com"
subject = "Test email from Python"
body = "This is a test email sent from Python."

# Create the email message
msg = MIMEText(body)
msg["Subject"] = subject
msg["To"] = recipient
msg["From"] = username

# Send the email
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.send_message(msg)
server.quit()

此脚本使用 smtplib 和电子邮件模块,通过简单邮件传输协议 (SMTP) 发送电子邮件。smtplib 模块中的 SMTP 类用于创建 SMTP 客户端,starttls 和登录方法用于建立安全连接,电子邮件模块中的 MIMEText 类用于在多用途 Internet 邮件扩展中创建电子邮件消息( MIME) 格式。MIMEText 构造函数将电子邮件正文作为参数,您可以使用 __setitem__ 方法设置电子邮件的主题、收件人和发件人。

创建电子邮件消息后,将使用 SMTP 对象的 send_message 方法发送电子邮件。然后调用 quit 方法关闭与 SMTP 服务器的连接。

5. 密码管理器脚本

密码管理器脚本是一种用于安全存储和管理密码的 Python 脚本。该脚本通常包括用于生成随机密码、将散列密码存储在安全位置(例如数据库或文件)以及在需要时检索密码的功能。

import secrets
import string

# Generate a random password
def generate_password(length=16):
    characters = string.ascii_letters + string.digits + string.punctuation
    pd = "".join(secrets.choice(characters) for i in range(length))
    return password

# Store a password in a secure way
def store_password(service, username, password):
    # Use a secure hashing function to store the password
    hashed_password = hash_function(password)

    # Store the hashed password in a database or file
    with open("password_database.txt", "a") as f:
        f.write(f"{service},{username},{hashed_password}\n")

# Retrieve a password
def get_password(service, username):
    # Look up the hashed password in the database or file
    with open("password_database.txt") as f:
        for line in f:
            service_, username_, hashed_password_ = line.strip().split(",")
            if service == service_ and username == username_:
                # Use a secure hashing function to compare the stored password with the provided password
                if hash_function(password) == hashed_password_:
                    return password
        return None

上述示例脚本中的 generate_password 函数使用字母、数字和标点符号的组合生成指定长度的随机密码。store_password 函数将服务(例如网站或应用程序)、用户名和密码作为输入,并将哈希后的密码存储在安全位置。get_password 函数将服务和用户名作为输入,如果在安全存储位置找到相应的密码,则检索相应的密码。

结论

伙计们,5 个 Python 脚本来自动化你的生活并成为一台生产力机器!只要确保不要让自己失业,否则你可能会把所有的时间都花在玩扫雷上,而你的电脑却在做所有的工作。编码愉快!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5 个用于自动化的杀手级 Python 脚本 的相关文章

  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • 微信登录显示连接失败,请检查网络

    背景 xff1a 最近公司网络不知道怎么回事 xff0c 显示连接失败 xff0c 请检查网络 最初解决方案 重新插拔网线 xff0c 就可以登陆微信了 xff0c 但是退出重登需要继续插拔网线 同事分享的解决方案 xff1a 1 右键以太
  • Property or method “XXX“ is not defined on the instance but referenced during render.解决方法

    在做Vue项目时 xff0c 有时候会看到这个警告 这里是因为vue检测到了 count 这个属性有被使用 xff0c 但是未定义 xff0c 页面虽然能够显示但是有红色信息总归是不好看的 xff0c 解决方法如下 xff1a 我们只需要在
  • 如何用Idea 创建Spring项目

    如何用IntelliJ Idea创建一个简单的Spring项目呢 xff0c 刚入门的人可能不太懂 xff0c 那我就来简单分享一下吧 第一步 点击新建一个maven项目 xff0c 点击下一步 xff08 不用选择从原型创建 xff09
  • OpenCV初尝试13——图像特征

    13 图像特征 13 1 Harris角点检测 Harris角点检测的思想是通过图像的局部的小窗口观察图像 xff0c 角点的特征是窗口沿任意方向移动都会导致图像灰度的明显变化 Harris角点检测的数学原理较为繁琐 xff0c 直接上个链
  • 华为secoclient客户端安装

    下载安装包 xff0c 右键以管理员身份运行 2 安装过程中一律选择同意 是 xff0c 完成后打开软件 点击标注处 3 输入网关地址和端口号 xff0c 选择添加 4 添加完成后确定并点击连接 xff0c 输入用户名 密码 xff0c 记
  • maven配置连接MySQL数据库

    2019年7月9号 问题 xff1a maven项目中连接不上mysql数据库 问题 xff1a maven项目中连接不上mysql数据库 从昨晚调bug一直调到今天上午 xff0c 昨晚发现了是maven项目中mysql数据库连接的问题
  • python学习:最适合初学者的8本Python书籍

    Python是最友好的编程语言之一 xff0c 也因此成为初学者的首选 xff0c 为了帮助你更好更快的上手Python xff0c 并学会使用Python进行编程 xff0c 本文我们为初学者分享了最好的Python书籍 希望能够对你有所
  • 最适合Python入门到大牛必看的7本书籍,一定要收藏!

    Python零基础应该阅读哪些书籍 xff1f 我推荐这三本书 1 Python学习手册 xff08 第4版 xff09 以计算机科学家一样的思维方式来理解Python语言编程 xff0c 实用的学习指南 xff0c 适合没有Python编
  • 前端开发:深入使用proxy代理解决前端跨域问题

    在前端领域里面 xff0c 跨域指的是浏览器允许向服务器发送跨域请求 xff0c 进而克服Ajax只能同源使用的局限性限制 同源策略是一种约定 xff0c 而且是浏览器中最基本也是最核心的安全功能 xff0c 若缺少了该策略 xff0c 浏
  • 手工搭建Servlet实现

    现在作为一个Java程序员 xff0c 我们已经习惯了使用IDE和Web框架进行开发 xff0c IDE帮助我们做了编译 打包的工作 Spring框架则帮助我们实现了Servlet接口 xff0c 并把Servlet容器注册到了Web容器中
  • airflow 文档学习(二) - 概念

    1 核心功能 1 1 DAGs 有向无环图 反映所涉及的task的依赖关系 注 xff1a 搜索dag的时候 xff0c airflow只会关注同事包含 34 DAG 34 和 34 airflow 34 字样的py文件 1 2 scope
  • java使用枚举进行前后端交互,以列表方式返回前端

    在有些情况下 xff0c 有一些下拉选择器的数据项 xff0c 我们采取了枚举的方式返回前端一个列表 xff0c 但是里面的东西多 xff0c 前端不想写死 xff0c 需要提供接口返回 xff0c 如下图类似这种 第一步 xff1a 先创
  • python循环,16段代码入门Python循环语句,值得收藏!

    导读 本文重点讲述for语句和while语句 for语句属于遍历循环 xff0c while语句属于当型循环 除了两个循环语句外 xff0c 还介绍了break continue与pass三个用于控制循环结构中的程序流向的语句 在此基础之上
  • IntelliJ IDEA中Error java: 程序包org.slf4j不存在 解决办法

    前言 问题描述 是我这边重构一个工程的时候新建一个module 希望这个module仅仅做kafka消费的服务 刚刚搭建起来运行发现有异常 Error nbsp java 程序包org slf4j不存在 解决办法 很显然可以想到的就是这个里
  • Linux下的Ubuntu系统下载安装python3.9.0

    在安装python3 9 0之前 xff0c 首先要进行换源 xff0c 这样才能防止下载过慢的情况 我这里换的是阿里云的镜像源 xff0c 在终端输入一下命令 其他镜像源可以查看 xff1a https www myfreax com u
  • 操作系统的基本概念

    操作系统的基本概念 一 操作系统的基本概念1 1概念1 2特征1 2 1 并发1 2 2 共享1 2 2 1 互斥共享方式1 2 2 2 同时访问方式 1 2 3 虚拟1 2 4 异步 1 3 目的和功能1 3 1操作系统作为计算机系统资源
  • Android -No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

    1 原因分析 xff1a 最新版ndk xff08 version 61 25 1 8937393 xff09 的toolchains文件夹中无arm linux androideabi文件 2 解决方案 xff1a 同时安装低版本的ndk
  • Python中的函数

    一 前言 我们在写Python时 xff0c 经常需要用到函数 xff0c 在此来说一下函数 xff0c 也就是本章要介绍的函数的作用于使用步骤 文章内容有点长 xff0c 请耐心看完哦 xff0c 文末有惊喜 二 Python中函数的作用
  • Spring自学笔记(学完老杜视频后再进行修改)

    Spring 概念 Spring框架是一个储存对象的容器 xff0c 是一个轻量级的开源Java开发框架 xff0c 它的核心是控制反转 xff08 IoC xff09 和面向切面编程 xff08 AOP xff09 xff0c 它由20多
  • 5 个用于自动化的杀手级 Python 脚本

    Python 是一种功能强大的语言 xff0c 广泛用于自动执行各种任务 无论您是开发人员 系统管理员 xff0c 还是只是想通过自动化日常任务来节省时间的人 xff0c Python 都能满足您的需求 这里有 5 个 Python 脚本