百词斩单词表转成anki接受的格式

说明一下这里使用的百词斩是安卓7.6.11版本,导出的pdf模板为“经典单词本”。

使用python编写的程序,先从pdf复制文字到txt再运行程序,按照程序提示进行即可,运行程序后在同目录下找到加上后缀(newformat)的新txt文件,该文件可以直接导入anki。

代码

import re
import os

def transform_format(input_file):
    # 读取输入文件内容
    try:
        with open(input_file, 'r', encoding='utf-8') as file:
            content = file.read()
    except FileNotFoundError:
        print(f"文件 {input_file} 未找到,请检查路径是否正确。")
        return
    except Exception as e:
        print(f"读取文件时发生错误: {e}")
        return

    # 1. 删除小字部分
    content = re.sub(r'- \d{1,2}\n', '', content)
    content = re.sub(r'\n?Classic Vocabulary List\nTitle: 收藏的单词\nDate: / /\n', '', content)
    content = re.sub(r'No.\nWord\nMeaning\n', '', content)
    
    # 2. 删除单词内换行
    content = re.sub(r'([a-zA-Z])\n([a-zA-Z])\n([a-zA-Z])', r'\1\2\n\3', content)

    # 3. 将换行符换成空格
    content = re.sub(r'(\d)\n([a-zA-Z])', r'\1 \2', content)
    content = re.sub(r'([a-zA-Z])\n([a-zA-Z])', r'\1 \2', content)

    # 4. 删除释义内的多余空格和换行符
    content = re.sub(r'\.\s+([^0-9])', r'.\1', content)
    content = re.sub(r';\s+', ';', content) 
    content = re.sub(r'\n(\d)', r'\nxlb\1', content)
    content = re.sub(r'\n', '', content)
    content = re.sub(r'xlb', r'\n', content)
    
    # 5. 提供删除数字的可选项
    delete_number = input("第二步:是否删除单词前的数字(y删除,n或回车保留)?建议先保留数字便于与行数比较检查,检查过后再选择删除(y/n): ")
    if(delete_number == 'y'):
        content = re.sub(r'\n(\d+) ', r'\n', content)
        

    # 生成新文件名
    base, ext = os.path.splitext(input_file)
    new_file = f"{base}(newformat){ext}"

    # 将重新格式化的内容写入新文件
    with open(new_file, 'w', encoding='utf-8') as file:
        file.write(content)
    print(f"转换完成,新文件保存为: {new_file}")


# 主程序
if __name__ == "__main__":
    input_file = input("第一步:请输入要转换格式的文本文件路径: ")
    transform_format(input_file)

 效果

原txt文件截图

转换格式(保留了数字)的新txt文件截图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值