Python功能运用

Python自动发送邮件

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 配置文件。如果您的环境有所不同,您可能需要根据自己的需要修改这个脚本。

你可能感兴趣的:(python,数据库,java)