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