IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 单词发音网页 (文本处理 python) -> 正文阅读

[JavaScript知识库]单词发音网页 (文本处理 python)

预览

在这里插入图片描述


准备

下载待转换.txt
提取码: 7xb3


txtToHtml.py

def toHTML():

    # 文件路径,记得更改 /home/czt/Documents/词汇/look_ME/待转换.txt
    path = "/home/czt/Documents/词汇/look_ME/"

    i = 0

    with open('%s%s'%(path,"转换成功.txt"), 'a') as f:

        for line in open('%s%s' % (path, "待转换.txt"), "r"):

            # 以 tab 为切分
            words = line.split('\t')

            # 跳过 utf-8行
            if words[0] == "\ufeff":
                i = 0
                continue

            # 统计 空格 个数
            num = 0
            str1 = '' # 单词
            str2 = '' # 音标和释义
            for w1 in words:
                if w1 == '':
                    num += 1
                else:
                    # 列表转为字符串
                    str1 = words[num]
                    for w2 in words[num+1:]:
                        if w2 == '':
                            break
                        else:
                            str2 += ' ' + w2
                    break

            if i == 0:
                num -= 1

            # 拼接字符串
            html = '<div class="t' + str(num+1) + '"><span>' + str1 + '</span>' + str2+ '</div>\n'
        
            # 写入文件
            f.write(html)

            
            i += 1
            # 测试专用
            if i < 20:
                print(words)
                # print(html)

        print("--- 转换成功 ---")

# 调用函数
toHTML()

修改路径 path ,将待转换.txt文件移到path

打开终端运行

python txtToHtml.py

会输出以下结果,并且在你所设置的 path 下生成 转换成功.txt

在这里插入图片描述在这里插入图片描述


words.html

转换成功.txt部分内容拷进 47行 body内

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <title>痛苦记单词</title>
    <style>
        div{
            background-color:rgb(243, 243, 243);
            margin-bottom: 5px;
            padding: 10px;
            border-radius: 5px;
            font-size: 20px;
        }
        div:hover{
            background-color:rgb(226, 245, 231);
        }
        .t1{
            margin-top: 100px;
        }
        .t2{
            padding-left: 100px;
        }
        .t3{
            padding-left: 200px;
        }
        .t4{
            padding-left: 300px;
        }
        .t5{
            padding-left: 400px;
        }
        .t6{
            padding-left: 500px;
        }
        .t7{
            padding-left: 600px;
        }
        .t8{
            padding-left: 700px;
        }
        @media screen and (max-width: 650px) {
            .t1{
                margin-top: 50px;
            }
            .t2{
                padding-left: 20px;
            }
            .t3{
                padding-left: 40px;
            }
            .t4{
                padding-left: 60px;
            }
            .t5{
                padding-left: 80px;
            }
            .t6{
                padding-left: 100px;
            }
            .t7{
                padding-left: 120px;
            }
            .t8{
                padding-left: 140px;
            }
        }
    </style>
</head>
<body>
    <div class="t0"><span>bound</span>&emsp;[baund]&emsp;v./n.跳(跃) a.被束缚的,一定的;n.界限</div>
    <div class="t2"><span>bound</span>&emsp;[baund]&emsp;v./n.跳(跃) a.被束缚的,一定的;n.界限</div>
    <div class="t3"><span>boundary</span>&emsp;['baund?ri]&emsp;n.分界线,边界</div>
</body>
    <script>
        $(document).ready(function(){
            $("div").click(function(){
            	//方式一
                //var words = new SpeechSynthesisUtterance($(this).context.children[0].textContent);
                //window.speechSynthesis.speak(words)

            	//方式二
				var audio = new Audio();  
                audio.src ='https://dict.youdao.com/speech?audio=' + encodeURI($(this).context.children[0].textContent);  
                audio.play(); 
            });
        });
    </script>
</html>

用浏览器打开看看,点击每一行都可以单词发音,如果要修改发音,可查阅SpeechSynthesisUtterancespeechSynthesis,当然你也可以用有道等其他发音,为了支持手机播放,这里用的有道,不过记得带上耳机,不然会没有声音。如果你想制作成桌面程序,可以考虑Eletron,只需替换其中的index.html,但Eletron尚不支持手机端,至此结束。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:32:12  更:2022-04-18 17:32:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:40:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码