python处理dedecms违禁词,违禁词批量替换自动执行

次阅读

需求:python处理dedecms违禁词,违禁词批量替换自动执行。“D:/python/text/数据库操作/weijinci.txt”中的weijinci.txt为违禁词替换库,格式为“违禁词>替换词”,每行一个。

import mysql.connector
import os
import time

# 连接到MySQL数据库
db_config = {
    'host': '服务器ip',
    'user': '数据库用户名',
    'password': '数据库密码',
    'database': '数据库名'  # 请替换为你的数据库名
}

conn = mysql.connector.connect(**db_config, connection_timeout=300)
cursor = conn.cursor()

# 读取txt文件,每行执行update语句
txt_file_path = 'D:/python/text/数据库操作/weijinci.txt'  # 请替换为你的txt文件路径

with open(txt_file_path, 'r', encoding='utf-8') as file:
    for line in file:
        left_side, right_side = line.strip().split('>')
        # 执行update语句
        update_queries = [
            f"UPDATE dede_archives SET title=REPLACE(title, '{left_side}', '{right_side}')",
            f"UPDATE dede_archives SET shorttitle=REPLACE(shorttitle, '{left_side}', '{right_side}')",
            f"UPDATE dede_archives SET keywords=REPLACE(keywords, '{left_side}', '{right_side}')",
            f"UPDATE dede_archives SET description=REPLACE(description, '{left_side}', '{right_side}')",
            f"UPDATE dede_addon18 SET body=REPLACE(body, '{left_side}', '{right_side}')",
            f"UPDATE dede_addonarticle SET body=REPLACE(body, '{left_side}', '{right_side}')",
        ]
        try:
            for query in update_queries:
                start_time = time.time()
                cursor.execute(query)
                conn.commit()
                end_time = time.time()
                elapsed_time = end_time - start_time
                print(f"Updated: {left_side} -> {right_side} (Time: {elapsed_time:.2f} seconds)")
        except Exception as e:
            print(f"Error executing query: {query}")
            print(f"Error message: {str(e)}")

# 关闭连接
cursor.close()
conn.close()

以上代码是一个使用 Python 的脚本,旨在连接到一个 MySQL 数据库,然后从一个指定的 TXT 文件中读取内容,逐行执行 UPDATE SQL 语句来修改数据库中表格的数据。

让我逐步解释代码的功能:

1、mysql.connector 是一个 Python 库,用于连接和操作 MySQL 数据库。

2、代码开始时,通过设置数据库连接的配置信息(主机 IP、用户名、密码和数据库名),建立与数据库的连接。

3、然后,代码指定了一个 TXT 文件的路径,在这个文件中,每一行都包含了两个值,用大于号(>)分隔。

4、对于文件中的每一行,代码将读取左右两边的值,并使用它们来构建多个 SQL UPDATE 语句。这些语句的目的是在不同的表中进行更新,使用给定的左侧和右侧的值进行替换。

5、更新操作被封装在一个 try-except 块中。在try块中,对每个构建的 SQL 语句进行执行和提交,记录执行时间,并打印相关信息。

6、如果在执行 SQL 查询时出现错误,except 块会捕获异常,打印出错的查询和异常信息。

7、最后,代码会关闭数据库连接。

需要注意的是,这段代码执行了一系列更新操作,修改了数据库中指定表格的数据。务必谨慎操作,因为这可能会对数据库中的数据产生永久性影响。最好在执行此类脚本之前备份数据库,并确保对脚本中的更新操作非常清楚和安全。

相关文章:

版权声明:由yongbin2023-11-02 09:02:40发表,共计3656字。
新手QQ群: 703975885,欢迎进群讨论 鲁班编程网