Python朗读excel中的英文单词

安装win32com的时候出现了诸多问题,直接贴代码:

 1 '''
 2     #利用python朗读excel里面的单词
 3 '''
 4 
 5 #开始导入所需库
 6 import xlrd
 7 from bs4 import BeautifulSoup
 8 import requests
 9 import time
10 import xlsxwriter as wx
11 import win32com.client
12 
13 #读取有单词的表格
14 xlsx = xlrd.open_workbook("D:/Python代码素材/excel自动化办公/words.xlsx")
15 table = xlsx.sheets()[0]
16 
17 #新建一个excel文件用来存储翻译后的内容
18 dst_wb = wx.Workbook("words_trans.xlsx")
19 worksheet = dst_wb.add_worksheet()
20 
21 #
22 for row in range(0, table.nrows):
23     time.sleep(1) #休眠一秒
24     word = table.cell(row, 0).value #开始读取每一列的单词并保存到word里面
25     #指定url
26     url = 'http://www.youdao.com/w/eng/' + word
27 
28     #用requests请求网页并以text(文本)返回
29     web_data = requests.get(url).text
30     #用BeautifulSoup解析内容
31     soup = BeautifulSoup(web_data, 'lxml')
32     #获取我们需要的内容
33     meaning = str(soup.select("#phrsListTab > div.trans-contrainer > ul > li")) .replace('li', '').replace('</li>', '')
34     #翻译保存
35     translation = meaning[1:-1]
36     print(word)
37     #写入新excel的单元格
38     worksheet.write(row, 0, word) #在row行第一列写依次写入word
39     worksheet.write(row, 1, translation) #在第row行第二列写入翻译后的字符串
40 
41 #关闭工作簿
42 dst_wb.close()
43 
44 #调用声音控件
45 speaker = win32com.client.Dispatch('SAPI.SpVoiice')
46 #打开翻译好的文件,也就是要朗读的文件
47 xlsx = xlrd.open_workbook('words_trans.xlsx')
48 table = xlsx.sheets()[0]
49 for row in range(0, table.nrows):
50     time.sleep(1) #开启休眠功能,间隔一秒
51     #读取单元格里的内容
52     word = table.cell(row, 0).value #第row行,第一列
53     #空列表,用以重组word
54     word_segment = []
55     #循环可迭代的word,将单词拆分
56     for i in word:
57         word_segment.append(i) #将循环出来的i依次追加到word_segment末尾
58         word_segment.append("-") #每次循环在末尾追加-
59         word_2 = " " .join(word_segment) #将列表word_segment转换成字符串并存储在word_2里
60         #朗读汉语意思
61         speaker.Speak(str(table.cell(row,0).value))
62         speaker.Speak(str(word_2))
63         speaker.Speak(str(table.cell(row, 0).value))
64         speaker.Speak(str(table.cell(row, 1).value))
原文地址:https://www.cnblogs.com/mafu/p/13935915.html