https://www.bilibili.com/opus/941729141064990755参考此教程 以TXT格式导出
运行以下Python代码
import re
import random
import os
import tkinter as tk
from tkinter import filedialog
from datetime import datetime, timedelta
def generate_user_ids(folder_path):
user_ids = {}
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
input_file_path = os.path.join(folder_path, filename)
with open(input_file_path, 'r', encoding='utf-8') as infile:
lines = infile.readlines()
for line in lines:
match = re.match(r'\[(.*?)\] (.*?)\n', line)
if match:
_, username = match.groups()
if username not in user_ids:
user_ids[username] = random.randint(
100000000, 999999999)
return user_ids
def convert_format_in_folder(folder_path):
output_folder = os.path.join(folder_path, 'converted_files')
os.makedirs(output_folder, exist_ok=True)
user_ids = generate_user_ids(folder_path)
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
input_file_path = os.path.join(folder_path, filename)
output_file_path = os.path.join(output_folder, filename)
convert_format(input_file_path, output_file_path, user_ids)
def convert_format(input_file, output_file, user_ids):
second_counter = 0 # 初始化秒计数器
with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile:
lines = infile.readlines()
for line in lines:
match = re.match(r'\[(.*?)\] (.*?)\n', line)
if match:
timestamp, username = match.groups()
user_id = user_ids.get(username)
# 解析原始时间戳
try:
time_obj = datetime.strptime(timestamp, '%Y/%m/%d %H:%M')
except ValueError:
# 如果时间格式不匹配,跳过此行
outfile.write(line)
continue
# 增加秒数
time_obj += timedelta(seconds=second_counter)
second_counter += 1 # 递增秒计数器
new_timestamp = time_obj.strftime('%Y/%m/%d %H:%M:%S')
new_format = f"{username}({user_id}) {new_timestamp}\n"
outfile.write(new_format)
else:
outfile.write(line)
def main():
root = tk.Tk()
root.withdraw()
folder_selected = filedialog.askdirectory(title="选择要转换的文件夹")
if folder_selected:
convert_format_in_folder(folder_selected)
print(f"转换完成!转换后的文件保存在:{os.path.join(
folder_selected, 'converted_files')}")
if __name__ == "__main__":
main()
运行程序后,按照以下步骤操作:
程序启动后会弹出一个对话框,选择包含待转换TXT文件的文件夹;程序会自动遍历该文件夹中的所有TXT文件,进行格式转换;转换后的文件将保存在所选文件夹内新创建的 converted_files 文件夹中。
移除转换后文件内容前后以=====分隔的内容,使用海豹染色器染色即可
https://log.weizaima.com/