46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
import os
|
||
import sqlite3
|
||
|
||
def read_sqlite_and_append_to_file(folder_path, output_file='./1.txt'):
|
||
"""
|
||
读取指定文件夹下所有SQLite数据库中的数据,并将其按照“列名: 内容”的格式
|
||
追加到指定的文本文件中。
|
||
|
||
:param folder_path: 包含SQLite数据库的文件夹路径
|
||
:param output_file: 输出文件的路径,默认为'1.txt'
|
||
"""
|
||
# 遍历文件夹中的所有文件
|
||
for filename in os.listdir(folder_path):
|
||
if filename.endswith('.db'):
|
||
db_path = os.path.join(folder_path, filename)
|
||
# 连接到SQLite数据库
|
||
conn = sqlite3.connect(db_path)
|
||
cursor = conn.cursor()
|
||
|
||
# 获取所有表名
|
||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
|
||
tables = cursor.fetchall()
|
||
|
||
for table_name in tables:
|
||
table_name = table_name[0]
|
||
# 获取表的列名
|
||
cursor.execute(f"PRAGMA table_info({table_name});")
|
||
columns = cursor.fetchall()
|
||
column_names = [col[1] for col in columns]
|
||
|
||
# 查询表中的所有数据
|
||
cursor.execute(f"SELECT * FROM {table_name};")
|
||
rows = cursor.fetchall()
|
||
|
||
for row in rows:
|
||
# 将每一行的数据按照“列名: 内容”的格式写入文件
|
||
with open(output_file, 'a', encoding='utf-8') as file:
|
||
for col_name, value in zip(column_names, row):
|
||
file.write(f"{col_name}: {value}\n")
|
||
file.write("\n") # 每一行数据之间添加一个空行
|
||
|
||
# 关闭数据库连接
|
||
conn.close()
|
||
|
||
# 示例使用
|
||
read_sqlite_and_append_to_file('./db/') |