进度条
不知道自己运行到第几个循环了,使用print显示每次循环的结束还是不直观。
使用python库tqdm解决这几个小问题。
对于一个循环
from tqdm import tqdm
import time
for i in range(100):
time.sleep(0.5)
#or do something
print(i)
循环结束输出了0-99,既不美观也不容易及时查询
使用tqdm包
配合time 库每0.5秒输出一次
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.5)
#or do something
可以直观的显示循环到第几次,如下图两者对比
循环次数取决于for i in tqdm(list):中的list。
没有使用过该库的
pip install tqdm
语音播报
这个真的是神器,程序完成的时候有一声提示,能节省很多时间
方法很多种,记录我觉得最好用的两种:os库的应用以及pyttsx3库的应用。
os 用法
os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。
import os
os.system('say "anything you want to say"')
os.system('say "任何你想说的"')
简单便捷,中英文皆可,其他语言没有试过。
pyttsx3用法
python 文字转语音库,支持电脑系统中的语音包,可以调节语速、语调等。
安装
pip install pyttsx3
这个库内容比较多需要的时间比较久
直接调用
import pyttsx3
pyttsx3.speak("任何你想说的")
pyttsx3.speak("anything you want to say")
直接调用时可以自动识别你使用的语言
修改参数
初始化
import pyttsx3
engine = pyttsx3.init() #初始化语音引擎
修改语音语速与音量
默认语速200,默认音量1
engine.setProperty('rate', 200) #设置语速
engine.setProperty('volume',1) #设置音量
修改语言
根据电脑操作系统会有不同的语音包,因此首先需要判断系统支持哪一些语音
voices = engine.getProperty('voices')
for voice in voices:
print(voice) ##### 输出系统的语音包信息
输出结果
在我使用的mac中,输出结果的格式如下,该语音包为中文语音包,其中:
voice id 为语音包代码,name为录制者的人名,language为语音包的语言,gender为录制者的性别,最后age为录制者的年龄。
在输出了这些参数后可以根据个人喜好选择语音包。
在确认自己电脑具有的语音包后,我标注了其中的中文包,mac中包括:
zh_1 = 'com.apple.speech.synthesis.voice.tingting.premium' #### 大陆 zh_CN
zh_2 = 'com.apple.speech.synthesis.voice.sinji' #### 香港(粤语)zh_HK
zh_3 = 'com.apple.speech.synthesis.voice.meijia' #### 台湾zh_TW
那么在使用时
engine.setProperty('voice', zh_3)#### 选择语音包
设置好音量语速以及语音包后,使用
engine.say("任何你想说的")
engine.runAndWait()
engine.stop()
那么完整代码如下:
import pyttsx3
#语音包id
zh_1 = 'com.apple.speech.synthesis.voice.tingting.premium' #### 大陆 zh_CN
zh_2 = 'com.apple.speech.synthesis.voice.sinji' #### 香港(粤语)zh_HK
zh_3 = 'com.apple.speech.synthesis.voice.meijia' #### 台湾zh_TW
#### 开始设置
engine = pyttsx3.init() #初始化语音引擎
voices = engine.getProperty('voices')
for voice in voices:
print(voice) ##### 输出系统的语音包信息
engine.setProperty('voice', zh_3)#### 选择语音包
engine.setProperty('rate', 200) #设置语速
engine.setProperty('volume',1) #设置音量
engine.say("您的程序计算第一组完成")
engine.runAndWait()
engine.stop()
总结
有了这几个库,就可以轻松实现随时检查程序运转进度和后台运行程序啦!摸鱼,冲!