import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 发件人和收件人信息
sender_email = "[email protected]"
receiver_email = "[email protected]"
# 邮件主题和正文内容
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 = "[email protected]"
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 hashlib
def 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 time
def check_network_status():
hostname = "baidu.com"
response = os.system("ping -c 1 " + hostname)
return response == 0
while True:
if not check_network_status():
print("Network is down!")
# 发送警报信息
time.sleep(60)
该脚本可以帮助你在命令行中输出一个进度条,用于展示任务的进度和剩余时间
import time
def 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 配置文件。如果您的环境有所不同,您可能需要根据自己的需要修改这个脚本。