python寫入word
1. 實現python文本寫入word
准備
我測試使用的Python版本為2.7.10,如果你的版本是Python3.5的話,這里就不太適合了。
使用Speech API
原理
我們的想法是藉助微軟的語音介面,所以我們肯定是要進行調用 相關的介面。所以我們需要安裝pywin32來幫助我們完成這一個底層的交互。
示例代碼
import win32com.clientspeaker = win32com.client.Dispatch("SAPI.SpVoice")speaker.Speak("Hello, it works!")
小總結
是的,調用介面來實現語音功能就是這么簡單,但是我們不得不來聊一聊這種方式的缺點。
對中文支持的不夠好,僅僅是這一點,估計在中國沒幾個用它的了。
還有就是語速不能很好的控制
pyttsx方式
原理
pyttsx 是Python的一個關於文字轉語音方面的很不錯的庫。我們還可以藉助pyttsx來實現在線朗讀rfc文件或者本地文件等等,最為關鍵的是,它對中文支持的還是不錯的。
示例代碼
# coding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')# __author__ = '郭 璞'# __date__ = '2016/8/6'# __Desc__ = 文字轉語音輸出import pyttsxengine = pyttsx.init()engine.say('hello world')engine.say('你好,郭璞')engine.runAndWait()# 朗讀一次engine.endLoop()
小總結
使用pyttsx,我們可以藉助其強大的API來實現我們基本的業務需求。很酷吧。
pyttsx深入研究
做完上面的小實驗,你肯定會覺得怎麼這么不過癮呢?
別擔心,下面我們就一起走進pyttsx的世界,深入的研究一下其工作原理吧。
語音引擎工廠
類似於設計模式中的「工廠模式」,pyttsx通過初始化來獲取語音引擎。當我們第一次調用init操作的時候,會返回一個pyttsx的engine對象,再次調用的時候,如果存在engine對象實例,就會使用現有的,否則再重新創建一個。
pyttsx.init([driverName : string, debug : bool]) → pyttsx.Engine
從方法聲明上來看,第一個參數指定的是語音驅動的名稱,這個在底層適合操作系統密切相關的。如下:
1.drivename:由pyttsx.driver模塊根據操作系統類型來調用,默認使用當前操作系統可以使用的最好的驅動
sapi5 - SAPI5 on Windows
nsss - NSSpeechSynthesizer on Mac OS X
espeak - eSpeak on every other platform
2.debug: 這第二個參數是指定要不要以調試狀態輸出,建議開發階段設置為True
引擎介面
要想很好的運用一個庫,不了解其API是不行的。下面來看看pyttsx。engine.Engine的引擎API。
方法簽名 參數列表 返回值 簡單釋義
connect(topic : string, cb : callable) topic:要描述的事件名稱;cb:回調函數 → dict 在給定的topic上添加回調通知
disconnect(token : dict) token:回調失聯的返回標記 Void 結束連接
endLoop() None → None 簡單來說就是結束事件循環
getProperty(name : string) name有這些枚舉值「rate, vioce,vioces,volumn → object 獲取當前引擎實例的屬性值
setProperty(name : string) name有這些枚舉值「rate, vioce,vioces,volumn → object 設置當前引擎實例的屬性值
say(text : unicode, name : string) text:要進行朗讀的文本數據; name: 關聯發音人,一般用不到 → None 預設要朗讀的文本數據,這也是「萬事俱備,只欠東風」中的「萬事俱備」
runAndWait() None → None 這個方法就是「東風」了。當事件隊列中事件全部清空的時候返回
startLoop([useDriverLoop : bool]) useDriverLoop:是否啟用驅動循環 → None 開啟事件隊列
元數據音調
在pyttsx.voice.Voice中,處理合成器的發音。
age
發音人的年齡,默認為None
gender
以字元串為類型的發音人性別: male, female, or neutral.默認為None
id
關於Voice的字元串確認信息. 通過 pyttsx.engine.Engine.setPropertyValue()來設置活動發音簽名. 這個屬性總是被定義。
languages
發音支持的語言列表,如果沒有,則為一個空的列表。
name
發音人名稱,默認為None.
更多測試
朗讀文本
import pyttsxengine = pyttsx.init()engine.say('Sally sells seashells by the seashore.')engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
事件監聽
import pyttsxdef onStart(name): print 'starting', namedef onWord(name, location, length): print 'word', name, location, lengthdef onEnd(name, completed): print 'finishing', name, completedengine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
打斷發音
import pyttsxdef onWord(name, location, length): print 'word', name, location, length if location > 10: engine.stop()engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
更換發音人聲音
engine = pyttsx.init()voices = engine.getProperty('voices')for voice in voices: engine.setProperty('voice', voice.id) engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
語速控制
engine = pyttsx.init()rate = engine.getProperty('rate')engine.setProperty('rate', rate+50)engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
音量控制
engine = pyttsx.init()volume = engine.getProperty('volume')engine.setProperty('volume', volume-0.25)engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
執行一個事件驅動循環
engine = pyttsx.init()def onStart(name): print 'starting', namedef onWord(name, location, length): print 'word', name, location, lengthdef onEnd(name, completed): print 'finishing', name, completed if name == 'fox': engine.say('What a lazy dog!', 'dog') elif name == 'dog': engine.endLoop()engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.', 'fox')engine.startLoop()
使用一個外部的驅動循環
engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.', 'fox')engin(www.alOnely.Com.Cn)e.startLoop(False)# engine.iterate() must be called inside externalLoop()externalLoop()engine.endLoop()
總結
以上就是Python如何實現文本轉語音的全部內容,看完了上面的講述,是不是感覺Python實現文本轉語音還是蠻簡單的?那麼,大家快來嘗試嘗試吧。希望本文對大家學習Python有所幫助。
2. 如何用python寫hello word
,python環境變數配置
(1)設置環境變數:我的電腦-右鍵-屬性-高級-環境變數 在Path中加入
;c:\python26 (注意前面的分號和路徑)
(2)此時,還是只能通過"python *.py"運行python腳本,若希望直接運行*.py,只需再修改另一個環境變數PATHEXT:
;.PY;.PYM
3,測試是否安裝成功
cmd進入命令行 輸入python –v 若是輸出版本信息,則表示安裝完畢
4,建一個hello.py
print ("hello world")
5,cmd 進入命令行 找到文件路徑 hello.py
會輸出"hello world"
6,接受用戶輸入
x= input("x:")
y= input("y:")
print (x * y)
print("我開始學習python了,要加油啊!")
3. Python代碼保存到word
我們可以藉助某些編輯器將代碼高亮的性質,然後將代碼復制到其中,並將其截圖保存到word裡面,就比如說我們使用工具sublime text,我們把代碼復制到裡面如下所示。
然後再將該代碼截圖保存,就可以插入到word裡面,並且看著非常舒服。希望可以幫助到你。
4. pycharm中輸入word操作需要導入什麼
PyCharm安裝
1
從文末鏈接或者Jetbrains官網下載安裝包,雙擊進行安裝;可選擇pycharm作為打開.py文件的默認安裝程序
2
下一步,直至安裝完成。這時候PyCharm就自動運行了。由於是首次使用,我們對下面的彈出窗口依次選擇默認選項即可。
END
開發環境配置
1
安裝完成後,我們的PyCharm是這個樣子的。點擊新建項目。
2
在彈出窗口中,我們可以看到使用的Python版本。如果我們安裝有多個Python環境,可以在設置中進行添加
3
為了方便我們存放PyCharm工程文件,我們最好設置一下工程目錄
END
開發環境測試
1
首先在工程下新建目錄,新建Python文件
2
然後輸入代碼並運行。如果成功輸出「hello world」那麼說明我們的設置就完成了
END
IDE設置
輸出窗口設置
筆者習慣把窗口放在右側,這樣就給了代碼更多空間。
行號設置
字體設置
需要先點擊另存為之後,才可以修改字體
中文設置
Python3 默認編碼UTF-8直接支持中文
Python2 需要在添加# -*-coding:gbk-*-在代碼頭部,並且需要對中文進行u前綴處理,如:u"你好"
開發環境切換
可以方便的在Python3和Python2環境之間進行切換,當然,代碼需要我們自己修改,幸好我們可以新建不同的項目
5. 如何用Python編寫代碼在Word中實現帶公式計算過程的計算書
1、打開idle。點擊file,然後點擊new file 這是創建一個新的文件。新建...
答:1、打開idle。點擊file,然後點擊new file.這是創建一個新的文件。 新建一個文件之後,我們輸入第一行代碼,使用print函數,在屏幕上列印一句話,其中字元串要使用雙引號,輸入法要使用英文輸入法,如果符號使用中文輸入法輸入,就會出現錯誤。p...
2020-11-17回答者:環球青藤1個回答
pythonsympy中生成的公式怎麼粘到word里
答:右鍵選 show math as→mathML Code 全選復制,在word中右鍵以文本形式粘貼
2018-01-27回答者:夜歌在路上2個回答
如何使用python提取並處理word文檔中插入的mathtyp...
答:我沒做過,只能提供大概思路給你。這是mathtype的SDK:,裡面關於API的描述: MathType API Documentation The MathType API allows you to call functions used by the MathType Commands ForWord. On Windows, this API is split between MathP...
2017-10-03回答者:天天不看java1個回答
如何用python寫這個代碼
問:使用兩個參數定義一個名為dictionaryToListOfValues的函數。 此函數的第...
答:使用Python自帶的IDLE 在開始-->程序-->Python2.5(視你安裝的版本而不同)中找到IDLE(Python GUI)。 點擊後彈出如下窗體: 1,在>>>提示符後輸入代碼,回車,就可以執行此代碼。 IDLE支持語法高亮,支持自動縮進,支持方法提示,不過提示的很慢。...
2019-10-17回答者:司馬刀劍2個回答3
如何用python編寫計算器
答:我想你的需求應該是一個圖形界面的程序,而不是簡單的在命令行上輸入。 那麼,要做的第一件事就是選擇一個圖形界面套件。可以使用原生的TK,也可以用跨平台性能很好的wxPython,或者是整體結構很像MFC的PyWin32。至於pyGTK,pyQT,都是可選的,但...
2011-05-30回答者:碧藍右耳3個回答6
用Python編寫代碼1×2×3+4×5×6+7×8×9+++···99×100×1...
答:t=1 for i in range(1,102): t*=i print(t)
2020-04-05回答者:知道網友1個回答2
python如何識別docx中的公式
答:import fnmatch, os, sys, win32com.client readpath=r'D:123'wordapp = win32com.client.gencache.EnsureDispatch("Word.Application") try: for path, dirs, files in os.walk(readpath): for filename in files: if not fnmatch.fnmatch(fi...
2016-07-09回答者:知道網友1個回答2
如何用Python代碼運行Word中的VBA
問:請問有什麼好的辦法用Python代碼運行Word中的VBA嗎, 具體需要import哪...
答:安裝pypiwin32 import win32com.client app= win32com.client.Dispatch("word.Application") app.Workbooks.Open("宏代碼所在文件路徑") app.Application.Run("宏名稱") app.Application.Quit()
2019-08-31回答者:娘化的新世界1個回答
用Python寫一個,兩個數的加,減,乘,除的函數,...
答:我課程中的部分代碼(除沒寫): def f_add(a,b): return a+bdef f_mul(a,b): return a*bdef f_sub(a,b): return a-b def g1(f,a,b): return f(a,b)a,b,c,d = 1,2,3,4print g1(f_sub, g1(f_mul, g1(f_add,a,b), c), d), g1(f_mul, g1(f_add,a,b)...
2017-11-21回答者:黑板客1個回答4
python編寫2個函數代碼,實現求最小公倍數和最大公...
問:使用兩個函數實現,最小公倍數和最大公約數
答:def gcd(a, b): # 求最大公約數 x = a % b while (x != 0): a, b = b, x x = a % b return bdef lcm(a,b): # 求最小公倍數 return a*b//gcd(a,b) 程序縮進如圖所示
6. Python創建word文檔並寫入內容
首先安裝docx包,命令:pip install python-docx
通過創建對象進行數據的插入,包括文字、圖片、表格、段落等內容。
實現的效果圖:
7. 怎麼把python輸出為word
程序導出word文檔的方法
將web/html內容導出為world文檔,再java中有很多解決方案,比如使用Jacob、Apache POI、Java2Word、iText等各種方式,以及使用freemarker這樣的模板引擎這樣的方式。php中也有一些相應的方法,但在python中將web/html內容生成world文檔的方法是很少的。其中最不好解決的就是如何將使用js代碼非同步獲取填充的數據,圖片導出到word文檔中。
1. unoconv
功能:
1.支持將本地html文檔轉換為docx格式的文檔,所以需要先將網頁中的html文件保存到本地,再調用unoconv進行轉換。轉換效果也不錯,使用方法非常簡單。
?
\# 安裝
sudo apt-get install unoconv
\# 使用
unoconv -f pdf *.odt
unoconv -f doc *.odt
unoconv -f html *.odt
缺點:
1.只能對靜態html進行轉換,對於頁面中有使用ajax非同步獲取數據的地方也不能轉換(主要是要保證從web頁面保存下來的html文件中有數據)。
2.只能對html進行轉換,如果頁面中有使用echarts,highcharts等js代碼生成的圖片,是無法將這些圖片轉換到word文檔中;
3.生成的word文檔內容格式不容易控制。
2. python-docx
功能:
1.python-docx是一個可以讀寫word文檔的python庫。
使用方法:
1.獲取網頁中的數據,使用python手動排版添加到word文檔中。
8. 老師讓叫python作業寫到word文檔里交啥意思
把代碼復制粘貼到word里。
奇怪的問題,一般不都是交py文件和代碼 代碼運行結果截圖的嗎?
9. python如何讀取word文件中的文本內容並寫入到新的txt文件
10. python怎麼在word表中插圖片
# -*- coding: UTF8 -*-from docx import Documentfrom docx.shared import Pt doc = Document() # 文件存儲路徑path = "C:\\Users\\Administrator\\Desktop\\word文檔\\" # 讀取文檔# doc = Document(path + "hello.docx") # 添加圖片,後面的參數設置圖片尺寸,可以選填doc.add_picture(path + 'cat.jpg', width=Pt(300))