> 文章列表 > Python功能运用

Python功能运用

Python功能运用

Python自动发送邮件

import smtplibfrom email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders# 发件人和收件人信息
sender_email = "youremail@gmail.com"
receiver_email = "receiveremail@gmail.com"# 邮件主题和正文内容
subject = "Test Email"
body = "This is a test email sent using Python."# 创建邮件实例
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject# 添加正文内容
message.attach(MIMEText(body, "plain"))# 添加附件
filename = "test.txt"
attachment = open(filename, "rb")
p = MIMEBase("application", "octet-stream")
p.set_payload(attachment.read())
encoders.encode_base64(p)
p.add_header("Content-Disposition", f"attachment; filename= {filename}")
message.attach(p)# 发送邮件
smtp_server = "smtp.gmail.com"
port = 587
username = "youremail@gmail.com"
password = "yourpassword"# 创建 SMTP 实例
server = smtplib.SMTP(smtp_server, port)
server.starttls()
server.login(username, password)# 发送邮件
text = message.as_string()
server.sendmail(sender_email, receiver_email, text)
server.quit()print("Email sent successfully!")

数据库连接

import mysql.connector# 数据库连接信息
db_config = {"host": "localhost","user": "root","password": "password","database": "example"
}# 连接数据库并执行 SQL 查询
db = mysql.connector.connect(**db_config)
cursor = db.cursor()
cursor.execute("SELECT * FROM customers")# 获取查询结果
result = cursor.fetchall()
for row in result:print(row)

找出一个目录下所有的重复文件

脚本可以帮助你找出指定目录下的所有重复文件,并列出它们的文件路径。可以用于整理磁盘空间,避免重复占用存储空间。

import os
import hashlibdef find_duplicate_files(path):# 获取指定目录下所有文件的路径file_paths = []for root, dirs, files in os.walk(path):for file in files:file_paths.append(os.path.join(root, file))# 计算每个文件的 MD5 值file_md5 = {}for file_path in file_paths:with open(file_path, 'rb') as f:md5 = hashlib.md5(f.read()).hexdigest()if md5 in file_md5:file_md5[md5].append(file_path)else:file_md5[md5] = [file_path]# 找出所有重复文件duplicates = [files for files in file_md5.values() if len(files) > 1]return duplicates

网络连通性检测

该脚本可以帮助你检测网络连通性,如果网络不可达则发出警报。可以用于监控网络状态,及时发现并解决问题。

import os
import timedef check_network_status():hostname = "baidu.com"response = os.system("ping -c 1 " + hostname)return response == 0while True:if not check_network_status():print("Network is down!")# 发送警报信息time.sleep(60)

进度条

该脚本可以帮助你在命令行中输出一个进度条,用于展示任务的进度和剩余时间

import timedef progress_bar(total, prefix='', suffix='', decimals=1, length=50, fill='█'):percent = ("{0:." + str(decimals) + "f}").format(100 * (total / float(total)))filled_length = int(length * total // total)bar = fill * filled_length + '-' * (length - filled_length)print('\\r%s |%s| %s%% %s' % (

一个简单的 Python 脚本,可以用于部署 Java 服务:

import subprocess# 定义服务名称和 jar 包路径
service_name = "my-service"
jar_path = "/home/user/my-service.jar"# 停止服务
subprocess.call(["systemctl", "stop", service_name])# 备份旧 jar 包
subprocess.call(["cp", jar_path, jar_path + ".bak"])# 拷贝新 jar 包
subprocess.call(["cp", "my-new-service.jar", jar_path])# 启动服务
subprocess.call(["systemctl", "start", service_name])

这个脚本做了以下几件事情:

定义了服务名称和 jar 包路径。
停止了当前正在运行的服务。
备份了旧的 jar 包。
拷贝了新的 jar 包。
启动了新的服务。
请注意,这个脚本假设您已经在系统中设置了 Java 服务,并且已经创建了相应的 systemd 配置文件。如果您的环境有所不同,您可能需要根据自己的需要修改这个脚本。