Python常用方法

时间转换

python 复制代码
from datetime import datetime, timedelta, timezone

# 原始日期字符串
date_str = '20250217'
datetime_str = '20250217000000'

# 解析为 UTC 时间
date_obj = datetime.strptime(date_str, '%Y%m%d')
# 会增加8个小时
#date_obj = datetime.strptime(date_str, '%Y%m%d').replace(tzinfo=timezone.utc)
# 同样会增加8个小时
#date_obj = datetime.strptime(datetime_str, '%Y%m%d%H%M%S').replace(tzinfo=timezone.utc)

#date_obj = date_obj - timedelta(hours=8)

# 获取 UTC 时间戳
timestamp = int(date_obj.timestamp())
print(f"UTC 时间 {date_str} 的时间戳为: {timestamp}")

# 计算7天后的 UTC 时间
seven_days_later = date_obj + timedelta(days=7)
seven_days_timestamp = int(seven_days_later.timestamp())
print(f"UTC 时间 {date_str} 7天后的时间戳为: {seven_days_timestamp}")

传递参数

test.py

python 复制代码
from datetime import datetime
import os

# 原始日期字符串
date_str = '20250217'
# 解析为 UTC 时间
date_obj = datetime.strptime(date_str, '%Y%m%d')
# 获取 UTC 时间戳
timestamp = int(date_obj.timestamp())
print(f"UTC 时间 {date_str} 的时间戳为: {timestamp}")

os.system('python test1.py ' + date_str)

test1.py

python 复制代码
import sys

print('test1 ' + sys.argv[1])

执行结果

python 复制代码
C:\Users\admin\Desktop>python test.py
UTC 时间 20250217 的时间戳为: 1739721600
test1 20250217

操作数据库

python 复制代码
# python.exe -m pip install --upgrade pip
# python -m pip install pymysql
import pymysql

class MySQLTester:
    def __init__(self):
        # 数据库连接配置
        self.db_config = {
            'host': '192.168.1.100',       # 数据库地址 (如果是远程请填IP)
            'port': 3306,                  # 端口
            'user': 'root',                # 用户名 (建议使用之前配置好的支持远程的用户)
            'password': '*********',       # 密码
            'database': 'test',            # 数据库名 (请确保该数据库已存在)
            'charset': 'utf8mb4',          # 字符集,防止中文乱码
            'cursorclass': pymysql.cursors.DictCursor # 使用字典游标,查询结果以字典形式返回
        }
        self.conn = None
        self.cursor = None

    def connect(self):
        """建立数据库连接"""
        try:
            self.conn = pymysql.connect(**self.db_config)
            self.cursor = self.conn.cursor()
            print("✅ 数据库连接成功!")
            return True
        except pymysql.Error as e:
            print(f"❌ 连接失败: {e}")
            return False

    def query(self, sql, params=None):
        """执行查询操作 (SELECT)"""
        try:
            self.cursor.execute(sql, params)
            results = self.cursor.fetchall()
            return results
        except pymysql.Error as e:
            print(f"❌ 查询出错: {e}")
            return None

    def execute(self, sql, params=None):
        """执行增删改操作 (INSERT, UPDATE, DELETE)"""
        try:
            self.cursor.execute(sql, params)
            self.conn.commit() # 提交事务
            print(f"✅ 操作成功,影响行数: {self.cursor.rowcount}")
            return True
        except pymysql.Error as e:
            self.conn.rollback() # 出错回滚
            print(f"❌ 操作失败: {e}")
            return False

    def close(self):
        """关闭连接"""
        if self.cursor:
            self.cursor.close()
        if self.conn:
            self.conn.close()
        print("🔌 连接已关闭")

# --- 主程序入口 ---
if __name__ == "__main__":
    db = MySQLTester()
    
    # 1. 连接数据库
    if db.connect():
        
        # --- 准备工作:创建一个测试表 (如果不存在) ---
        # 注意:请确保你的数据库 'test_db' 已经存在
        create_table_sql = """
        CREATE TABLE IF NOT EXISTS users (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(50) NOT NULL,
            age INT,
            email VARCHAR(50)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
        """
        db.execute(create_table_sql)

        # --- 测试 1: 插入数据 (防止 SQL 注入) ---
        print("\n--- 测试插入数据 ---")
        insert_sql = "INSERT INTO users (name, age, email) VALUES (%s, %s, %s)"
        db.execute(insert_sql, ('张三', 25, 'zhangsan@example.com'))
        db.execute(insert_sql, ('李四', 30, 'lisi@example.com'))

        # --- 测试 2: 查询数据 ---
        print("\n--- 测试查询数据 ---")
        select_sql = "SELECT * FROM users"
        results = db.query(select_sql)
        
        if results:
            print(f"共查询到 {len(results)} 条数据:")
            for row in results:
                # 因为使用了 DictCursor,这里 row 是字典格式
                print(f"ID: {row['id']}, 姓名: {row['name']}, 年龄: {row['age']}")

        # --- 测试 3: 更新数据 ---
        print("\n--- 测试更新数据 ---")
        update_sql = "UPDATE users SET age = %s WHERE name = %s"
        db.execute(update_sql, (28, '张三'))

        # --- 测试 4: 再次查询验证更新 ---
        verify_sql = "SELECT * FROM users WHERE name = %s"
        verify_res = db.query(verify_sql, ('张三',))
        if verify_res:
            print(f"更新后张三的年龄: {verify_res[0]['age']}")

        # --- 测试 5: 删除数据 ---
        print("\n--- 测试删除数据 ---")
        delete_sql = "DELETE FROM users WHERE name = %s"
        db.execute(delete_sql, ('李四',))

        # 关闭连接
        db.close()
相关推荐
论文复现现场9 小时前
ComfyUI 怎么同时调用 4 张/8 张 RTX 4090?AI 视频批量生成的多实例队列与 Python 调度方案
人工智能·python·comfyui·rtx4090
泡海椒9 小时前
评分系统最佳实践:JQuick-Java实现权重、阈值动态配置评分
java·人工智能·python
三克的油9 小时前
java-学习1
java·开发语言·学习
aixingpan9 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolar_return2接口指南
前端·php
weixin199701080169 小时前
《二手ERP对接的对账机制:按日巡检 + 自动补偿,消灭“幽灵订单“》(附Python源码)
python
m0_547486669 小时前
《Python数据分析与实践》全套PPT课件(杭州电子科技大学)
python·数据分析
星期八不上发条9 小时前
智能指针是什么?使用场景,循环引用解决办法,面试回答
开发语言·c++·stl
OKkankan9 小时前
Python 基础进阶(三):从函数、类到 asyncio 与 FastAPI 后端开发实战
开发语言·python
智购科技自动售卖机厂家9 小时前
设备一到夏天就频繁跳闸,从启动电流追到压缩机电容~YH
数据结构·人工智能·python·eclipse
八荒启·交互动画9 小时前
Web特效019-Web特效的定义与边界核心算法手写一遍:先跑起来,再谈高级效果
前端·webgl·网页特效·八荒启-交互动画·八荒启