Python程序設計教程(工作手冊式) 課件 情景3、4 優(yōu)化程序的性能、Python與辦公自動化_第1頁
Python程序設計教程(工作手冊式) 課件 情景3、4 優(yōu)化程序的性能、Python與辦公自動化_第2頁
Python程序設計教程(工作手冊式) 課件 情景3、4 優(yōu)化程序的性能、Python與辦公自動化_第3頁
Python程序設計教程(工作手冊式) 課件 情景3、4 優(yōu)化程序的性能、Python與辦公自動化_第4頁
Python程序設計教程(工作手冊式) 課件 情景3、4 優(yōu)化程序的性能、Python與辦公自動化_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python程序設計教程

(工作手冊式)情景三

優(yōu)化程序的性能任務mission1234函數異常處理面向對象程序設計包與庫5文件操作任務一函數一.函數的定義在實際開發(fā)中,如果想把一段功能獨立的代碼進行封裝,我們就可以在這段代碼的上方,先寫上def關鍵字(def這個關鍵字是英文單詞define的縮寫,它的中文含義就是定義),def之后先空格,然后再給你這段代碼取個名字;函數名的后邊緊跟的是一對小括號或者叫圓括號,圓括號的后面再緊跟一個重要的冒號。冒號后一定要換行縮進再定義函數體,函數體內就是我們要封裝的函數功能代碼。我們編寫一個say_hello的函數,如右圖所示。defsay_hello():print("Hello!")print("Howareyou!")print("Goodmorning!")二.函數調用函數的定義實現了函數的功能,函數定義好了,如果不用放在哪也就只是擺設,怎么將其用起來,即函數調用。函數調用很簡單,通過函數名和它后邊那對圓括號,便可完成,后邊那對圓括號叫形參表。我們要調用say_hello函數,直接使用函數名加形參表就可以了,如:say_hello()特別需要注意的是:函數定義了一定要調用才會工作,你不調用它是不會主動工作的。三.形參形參是指定義函數時,圓括號中的參數,形參是用來接收實參的值的,它只能在函數內部作為變量使用。在定義函數頭部時,圓括號中便可以列舉出需要用到的形參的名稱,多個形參之間用逗號分隔。例如,定義一個求兩數之和的函數,代碼可以編寫為:這里的num1和num2就是用來表示加數與被加數的形參。所謂形參,從字面意思我們可以看出,它只是形式參數,并沒有實際值,當函數需要數據傳遞時,就需要在形參表設置形參,它的作用是等待別人傳遞數據給它。形參的作用有兩個:一是告訴外部把值傳到我這里來,二是在函數內部當作變量運算。def

sum(num1,num2):四.

實參實參是指調用函數時,圓括號中的參數,實參用來存放數據并將數據傳遞給形參。剛才定義的求和的sum()函數調用時,如果是將12和5兩數求和,可以將被加數12和加數5的值寫進實參表,編寫為:實參的作用只有一個:把數據傳遞給形參。sum圓括號12逗號5,這里的12和5就是實參。調用語句就是直接使用已經定義好的函數功能:將實參12傳遞給函數中的形參num1,實參5將傳遞給函數中的形參num2。sum(12,5)五.法變量的作用域變量的作用域就是變量在什么范圍內起作用,一個變量在不同的位置,它的作用域也是不一樣的。定義在函數外部的變量稱為全局變量,全局變量的作用域是整個全局;局部變量是在函數的內部定義,只能在其聲明的函數內部使用。defadd():s=n1+n2returnsn1=1n2=2result=add()print('{}+{}={}'.format(n1,n2,result))deflocalvar():

n3=1returnlocalvar()print(n3)六.編寫函數求圓的面積首先定義一個求圓面積的函數defcircle(radius);再通過for循環(huán)控制運行3次,在for循環(huán)體中使用input函數輸入圓的半徑,接著調用circle(將用戶輸入的半徑傳遞給radius);再通過return

語句返回計算后圓的面積,最后使用print(接收return變量)輸出面積。defcircle1(radius):area=3.14*radius**2returnareaforiinrange(3):r=float(input("請輸入圓的半徑:"))s=circle1(r)print('圓的面積為:{:.3f}'.format(s))七.任務一小結通過本次任務的學習和實踐,使我們了解了函數的功能和特點,掌握了函數的定義和調用的方法,并且通過綜合實訓的引導,能夠熟練運用多種方法編寫函數來解決實際問題。如果需要編寫的程序非常復雜,可以將其分解為多個函數,由團隊成員分工協作一同來完成;函數也需要合作,合作才能共贏。任務二面向對象程序設計一.面向對象程序設計1.對象的引入

對象(object)是一種數據抽象或數據結構抽象,用來表示程序中需要處理或已處理的信息。Python從設計之初就是一門面向對象的語言,它有一個重要的概念,即一切皆對象。數字、字符串、元組、列表、字典、函數、方法、類、模塊等等都是對象。將對象的特征用狀態(tài)和行為來表示,狀態(tài)就是靜態(tài)屬性,主要指對象包含的各種信息,如學號、姓名、性別、籍貫等;行為就是動態(tài)屬性,表示對象所具有的功能和操作,如學習、吃飯、體育鍛煉等。一.面向對象程序設計2.類的定義在Python的世界中也是同樣道理,要創(chuàng)建一個個的對象,就要先創(chuàng)建模具,也是先創(chuàng)建一個類。那如何定義類呢?使用關鍵字class來表示類,后面加空格再寫類名,類名后同樣需要緊跟一個重要的冒號,即class類名:,在定義類時,類名要遵循大駝峰命名法,比如定義一個汽車類,它的成員變量有:品牌、型號、顏色、價格;它的成員方法有:行駛。classCar:brand='長城'

type='H6''color='黑色'

price='120000'defdrive(self):print('Icanrun')一.面向對象程序設計3.對象的創(chuàng)建與使用汽車類創(chuàng)建完成以后,怎么通過汽車類來創(chuàng)建對象呢?這一步非常簡單,可以使用對象名=類名()來完成,此時我們要創(chuàng)建一個car1對象名,則直接通過car1=Car()來完成對象的創(chuàng)建,參考代碼如下:car1=Car() #創(chuàng)建car1對象car1.brand='長安' #訪問成員變量car1.type='CS75'

#調用成員方法car1.drive()二.封裝1.封裝的引入

封裝(Encapsulation)是對具體對象的一種抽象,即將某些部分隱藏起來,在程序外部看不到,其含義是其他程序無法調用。要了解封裝,離不開“私有化”,就是將類或者是函數中的某些屬性限制在某個區(qū)域之內,外部無法調用。在類中把某些屬性和方法隱藏起來(或者說定義成私有的),只在類的內部使用、外部無法訪問,或者留下少量接口(函數)供外部訪問。Python中私有化的方法也比較簡單,即在準備私有化的屬性和方法名字前面加兩個下劃線(__)即可。二.封裝2.封裝練習

將學生類Student中成員變量年齡age和性別gender私有化;同時將成員方法study()封裝起來,參考代碼如右1所示。接下來,通過學生類Student創(chuàng)建一個學生對象jack,再使用對象jack來訪問學生類Student中的成員變量和成員方法,參考代碼如右2所示。classStudent:name='張三'

__age=18

__gender='男'

def__study(self):print('努力學習')

defeat(self):print('認真吃飯')

defsleep(self):print('好好休息')jack=Student()print()print(jack.age)print(jack.gender)jack.study()jack.eat()jack.sleep()二.封裝2.封裝練習但是,隱藏并不是目的,定義了屬性和方法就是為了使用,我們可以在學生類中再定義兩個公共的方法,讓這兩個方法去訪問同類中的私有屬性和方法,這樣就可以間接讓學生類外的對象訪問私有屬性和方法了,參考代碼如下。classStudent:name='張三'

__age=18

__gender='男'

def__study(self):print('努力學習')

defeat(self):print('認真吃飯')

defsleep(self):print('好好休息')

defgetattribute(self):returnself.__age,self.__genderdefgetmethod(self):returnself.__study()jack=Student()print()print(jack.getattribute())jack.getmethod()jack.eat()jack.sleep()三.繼承1.怎么繼承

繼承是指將一個具有廣泛意義的類定義為父類(又稱為基類或超類),新建的類可以繼承一個或者多個父類,新建的類稱為子類(派生類)。子類的創(chuàng)建語法格式如下。class子類名(父類名):

成員變量的定義(新增或修改)成員方法的定義(新增或修改)三.繼承2.單繼承創(chuàng)建一個動物類Animal,該類具有吃、喝、跑、睡4個方法,參考代碼如下。再創(chuàng)建一個貓類Cat,讓它繼承動物類,品種為貍花貓,并且新增一個捉老鼠的方法;再創(chuàng)建一個狗類Dog,讓它繼承動物類,品種為中華田園犬,并且新增一個看家護院的方法;參考代碼如下。classAnimal:defeat(self):print('吃',end='')defdrink(self):print('喝',end='')defrun(self):print('跑',end='')defsleep(self):print('睡')classCat(Animal):breed='貍花貓'

defwork(self):print('捉老鼠')classDog(Animal):breed='中華田園犬'

defwork(self):print('看家護院')四.多態(tài)python中,多態(tài)是指不同的子類對象調用相同的父類方法,產生不同的執(zhí)行結果。多態(tài)一般指一類事物多種形態(tài),同時一個類有多個子類,因而多態(tài)的概念依賴于繼承。實現多態(tài)的兩個前提:一是要有繼承(多態(tài)必須發(fā)生在父類和子類之間);二是子類必須重寫父類的方法?,F在我們繼續(xù)使用單繼承的案例來講解多態(tài)的知識點,首先定義一個Animal父類,在該類中寫一個who方法;再寫兩個子類Cat和Dog繼承Animal類,并且每個子類都重寫父類的who方法,輸出該子類動物的名字。classAnimal:

defwho(self):print('我是小動物')classCat(Animal):

defwho(self):print('我是貍花貓')

defwork(self):print('捉老鼠')classDog(Animal):

defwho(self):print('我是中華田園犬')

defwork(self):print('看家護院')a1=Animal()c1=Cat()d1=Dog()a1.who()c1.who()d1.who()五.任務二小結通過本次任務的學習和實踐,使我們了解了面向對象程序設計的特征和優(yōu)勢,掌握了類的定義、對象的創(chuàng)建和使用;同時能夠熟練完成封裝、繼承和多態(tài)的程序設計和編碼。封裝增加了代碼的安全性、繼承提高了代碼的可重用性、多態(tài)增強了代碼的靈活度和可擴展性。任務三

異常處理一.異常處理1.異常的概念當我們在寫Python代碼的時候,或多或少都會遇到代碼錯誤或者異常的情況,那異常與錯誤有什么區(qū)別呢?異常是指不完整、不合法輸入,或者計算出現錯誤(但這時的語法和邏輯是正確的);錯誤是指代碼不符合解釋器或者編譯器語法要求。當程序運行時,如果Python解釋器遇到一個錯誤,會停止程序的執(zhí)行并且提示一些錯誤信息,這就是異常。通常將程序停止執(zhí)行并且提示錯誤信息這個動作稱之為:拋出異常。在程序開發(fā)時,很難把所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發(fā)事件做集中的處理,從而保證程序的穩(wěn)定性和健壯性。二.異常處理2.捕獲異常在程序開發(fā)中,如果對某些代碼的執(zhí)行不確定是否正確,可以增加try來捕獲異常。try:嘗試,下方編寫要嘗試的代碼,不確定是否能正常執(zhí)行的代碼;except:如果不是,下方編寫嘗試失敗的代碼。捕獲異常的語法格式如下:try:

嘗試執(zhí)行的代碼except:

出現錯誤的處理方法二.異常處理3.常見異常序號異常名稱描述1AttributeError對象沒有這個屬性2EOFError沒有內建輸入,到達EOF標記3IndexError序列中沒有該索引(index)4ImportError導入模塊/對象失敗

5IOError輸入/輸出操作失敗6KeyError映射中沒有該鍵7LookupError無效數據查詢的基類

8NameError未聲明/初始化對象(沒有屬性)9OSError操作系統(tǒng)錯誤10SyntaxErrorPython語法錯誤11TypeError對類型無效的操作12TabErrorTab和空格混用13ValueError傳入的參數無效14WindowsError系統(tǒng)調用失敗15UnicodeErrorUnicode相關的錯誤

16ZeroDivisionError除(或取模)零(所有數據類型)三.任務三小結通過本次任務的學習和實踐,使我們了解了異常處理的功能和特點,掌握了常見異常名稱和錯誤類型捕獲的方法,養(yǎng)成良好的編程習慣;并且通過綜合實訓的引導,能夠熟練捕獲異常以及出現錯誤后的處理方法。實際上這和我們做人做事的道理是一樣的,同學們要努力拓展知識的寬度和深度,面對同一個問題,多思考,多實踐,多改進,多總結。沒有做不到,只有想不到,這也是學無止境的道理。任務四

包與庫一.包與庫1.什么是包簡單來說,包(package)就是一個文件夾,每個包目錄中必須存在__init__.py文件,也就是裝著__init__.py文件的文件夾,該文件的內容可以為空。包是一個分層次的文件目錄結構,是模塊和子包的集合體。2.

什么是庫

庫(library),是模塊和包的集合,分為標準庫、第三方庫和自定義庫;Python的標準庫也稱為Python內置庫,是隨著Python安裝的時候默認自帶的庫,常用標準庫如右表所示。常用的標準庫序號名稱功能描述1os操作系統(tǒng)管理2sys解釋器交互3shutil文件管理4math數學常數和數學函數5random隨機數6datetime日期和時間7time時間訪問和轉換8jsonJSON編碼和解碼9glob查找文件10urllibhttp訪問一.包與庫3.包的使用首先打開PyCharm,在當前項目(D:\py)上單擊右鍵,選擇“New”,在彈出的子菜單中選擇創(chuàng)建“Pythonpackage”,輸入包名“cqcvc”后回車確定即可;緊接著鼠標右鍵單擊該包名,創(chuàng)建三個py文件分別是__init__.py、div.py和leapyear.py。一.包與庫4.導入包(1)import包名[.模塊名[as別名]](2)from包名import模塊名[as別名](3)from包名.模塊名import成員名[as別名]二.標準庫在常用標準庫中有一個操作文件和文件夾的os庫,它提供通用的、基本的操作系統(tǒng)交互功能,主要有:系統(tǒng)相關變量和操作、文件和目錄相關操作、執(zhí)行命令和管理進程,使用print(dir(os))可以發(fā)現,os標準庫包含了豐富的函數。os標準庫還包含了一個path子模塊,該子模塊主要提供了豐富的路徑操作方法,處理文件路徑及信息等操作。三.第三方庫1.

NumPy

NumPy是Python的一種開源的數值計算擴展,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用,可用來存儲和處理大型矩陣,比Python自身的嵌套列表結構要高效。2.

matplotlib

matplotlib是一個python2D繪圖庫,利用它可以畫出許多高質量的圖像,開發(fā)者僅需要幾行代碼,便可以生成直方圖,條形圖,餅圖,散點圖等。四.任務四小結通過本次任務的學習和實踐,使我們了解了包與庫的區(qū)別和特點,掌握了如何創(chuàng)建包和導入包的三種方法,并且通過綜合實訓的引導,能夠熟練運用標準庫大幅提高程序開發(fā)的效率;能夠安裝和使用第三方庫完成特定功能的實現。功能強大的第三方庫,可以讓開發(fā)者站在巨人的肩膀上工作,將重要工作由造輪子變成了找輪子,而一個好的輪子有以下特殊:開源、低耦合、有開發(fā)文檔、接口友好、社區(qū)相對活躍等。為了找到好輪子,需要同學們具備信息檢索能力、外文資料閱讀能力和代碼閱讀能力以及平時的經驗積累。正所謂:“不積跬步無以至千里,不積小流無以成江海”。任務五

文件操作一.文件的打開與關閉1.文件的打開打開文件使用open內置函數來實現,open底層調用的是操作系統(tǒng)的接口;打開文件可以使用open和withopen兩種方式來完成,具體格式如下。f1=open(文件名,讀寫模式,encoding='utf-8')withopen(文件名,讀寫模式,encoding='utf-8')asf2:序號讀寫模式描述1‘r’以只讀方式打開文件(默認方式)2‘w’以只寫方式打開文件(打開時清空文件)3‘a’打開文件,在文件末尾添加數據4‘rb’以只讀方式打開二進制文件5‘wb’以只寫方式打開二進制文件6‘ab’以添加方式打開二進制文件7‘+’放在上面模式后,設置讀寫模式一.文件的打開與關閉2.文件的關閉文件使用完后,切記要使用close函數關閉已打開的文件。即使文件會在程序退出后自動關閉,但是考慮到數據的安全性,在每次使用完文件后,都要使用close函數關閉文件,否則一旦程序崩潰,很可能導致文件中的數據沒有保存。f1.close()二.讀文件和寫文件1.讀文件可以用read()、readline()和readlines()來讀取文件的內容。(1)read():一次性讀取文件中的數據,可選參數size,用于控制讀取文件的字節(jié)數,如果省略表示一次性全部內容。(2)readline()每次讀取文件的一行數據,如果給定了size,有可能只返回一行的部分內容,以字符串的形式返回,并在結尾會有一個換行符‘\n’。(3)readlines()一次讀取整個文件,并自動將文件內容分析成一個行的列表。二.讀文件和寫文件2.寫文件向打開的文件寫入數據的函數有兩個,分別是:write()、writelines()。(1)write():該函數用來將文本字符串寫入已經創(chuàng)建的文件中。(2)writelines():該函數把對象中的多個字符串一次性全部寫到文件中。需要注意的是,序列中的內容也必須是字符串類型才可以。三.任務五小結通過本次任務的學習和實踐,使我們了解了編碼格式和文件讀寫模式,掌握了文件打開和關閉的方法;并且通過綜合實訓的引導,能夠根據實際需求熟練運用read()、readline()和readlines()來讀取文件,通過write()和writelines()來寫文件。最后通過強化訓練將本次“文件操作”應用和上一次“包與庫”的應用聯系起來協同完成,起到了鞏固拓展、舉一反三的目的。Python程序設計教程

(工作手冊式)情景四

Python與辦公自動化任務mission123word自動化ppt自動化excel自動化任務一

word自動化一.新建和寫入word文檔1.新建word文檔

在python-docx中,一個word文檔用一個Document對象來表示,所以我們要新建一個word文檔,只需要實例化一個Document對象即可,參考代碼如下。fromdocximportDocument#第一步:創(chuàng)建一個文檔對象doc1doc1=Document()#第二步:對象調用save()保存文檔doc1.save('cqcvc.docx')print('創(chuàng)建文檔成功!')一.新建和寫入word文檔2.寫入word文檔

在編輯word文檔前,首先需要選中操作對象,所以把文檔標題、段落信息等對象先寫入到文檔中,寫入文檔參考代碼如右側所示。fromdocximportDocument#讀取現有的文檔doc1=Document('cqcvc.docx')#添加文檔總標題和段落doc1.add_heading('重慶城市職業(yè)學院簡介',level=0)doc1.add_paragraph('重慶城市職業(yè)學院是教育部備案,\重慶市人民政府舉辦,重慶市教委主管的全日制公辦高等院校。')#添加一級標題和段落doc1.add_heading('辦學理念',level=1)doc1.add_paragraph('行大道啟大智鑄大匠通大悟')doc1.add_heading('校訓',level=1)doc1.add_paragraph('求德求知求技求悟')doc1.add_heading('校風',level=1)doc1.add_paragraph('堅卓勤勉自強奮進')doc1.add_heading('教風',level=1)doc1.add_paragraph('德潤匠心善導業(yè)精')doc1.add_heading('學風',level=1)doc1.add_paragraph('紅色匠心精益求精')#保存文檔doc1.save('cqcvc.docx')print('寫入文檔成功!')二.插入圖片和表格1.插入圖片

如果只是插入幾幅圖片、幾個表格當然可以直接用應用軟件來完成;但是如果要處理的圖片和表格數據巨大,有成長上萬張圖片和表格需要處理,此時首選編寫程序來快速、批量完成重復操作。fromdocximportDocumentfromdocx.sharedimportPtdoc1=Document()doc1.add_heading('文檔中插入圖片和表格',level=0)#插入圖片cqcvc.jpgdoc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230))print('文檔插入圖片成功!')……二.插入圖片和表格1.插入表格#插入3行3列的表格,'TableGrid'是表格邊框常用的樣式table=doc1.add_table(rows=3,cols=3,style='TableGrid')#定位第一個表格table=doc1.tables[0]table.add_row()#在表格最底部添加一行#標題行單元格添加關鍵字hc=table.rows[0].cellshc[0].text='學號'hc[1].text='姓名'hc[2].text='年齡'row1=table.rows[1]row1.cells[0].text='2022001'row1.cells[1].text='張三'row1.cells[2].text='18'row2=table.rows[2]row2.cells[0].text='2022002'row2.cells[1].text='李四'row2.cells[2].text='19'row3=table.rows[3]row3.cells[0].text='2022003'row3.cells[1].text='王五'row3.cells[2].text='20'print('文檔插入表格成功!')doc1.save('insert_pic_table.docx')print('文檔保存成功!')fromdocximportDocumentfromdocx.sharedimportPtdoc1=Document()doc1.add_heading('文檔中插入圖片和表格',level=0)#插入圖片cqcvc.jpgdoc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230))print('文檔插入圖片成功!')三.讀取word文檔如果需要讀取word文檔中的內容,參考代碼如下,運行后輸出的結果如下所示。fromdocximportDocument#打開文檔document=Document('style.docx')#讀取標題、段落、列表內容ps=[paragraph.textforparagraphindocument.paragraphs]forpinps:print(p)#讀取表格內容ts=[tablefortableindocument.tables]fortints:forrowint.rows:forcellinrow.cells:print(cell.text,end='')print()三.任務一小結通過本次任務的學習和實踐,使我們了解了python-docx第三方庫的作用,掌握了文檔的基本結構,并且通過綜合實訓的引導,能夠熟練完成文檔的創(chuàng)建和修改、在文檔中插入圖片和表格、樣式的創(chuàng)建和應用以及編寫程序讀取指定的word文檔。建議同學們將有針對性的部分功能盡量使用函數來完成,需要的時候直接調用該函數即可,不需要再進行重復編碼。任務二excel自動化一.創(chuàng)建和寫入excel1.

使用xlwt創(chuàng)建和寫入excel

xlwt模塊只支持不超過65535條數據的excel97-2003版本,保存的擴展名為*.xls,一旦數據量過大就無法使用了,所以在此只進行簡單的介紹。使用xlwt模塊創(chuàng)建和寫入excel的步驟一共有四步分別是:(1)創(chuàng)建工作簿;(2)創(chuàng)建工作表、;(3)在工作表中填充數據;(4)保存文件。一.創(chuàng)建和寫入excel2.使用openpyxl創(chuàng)建和寫入excel

openpyxl主要針對excel2007年之后的版本(.xlsx),可以讀寫xlsx、xlsm、xltx、xltm等目前常見的Excel文檔,可以進行文件的讀寫、單元格操作、公式、繪圖、數據透視表等功能,它對文件大小沒有限制,可以輕松實現Excel自動化辦公,參考代碼如下,運行后的效果如下所示。fromopenpyxlimportWorkbookwb=Workbook()#創(chuàng)建一個工作簿ws=wb.active

#獲取第一個工作表ws.title='城職七大特色專業(yè)群'#設置工作表名稱ws['A1']='序號'#設置第1列第1行單元格內容ws['B1']='專業(yè)群'data={1:'工業(yè)機器人技術',2:'市場營銷',3:'市場營銷',4:'大數據技術',

5:'航空技術',6:'智能建造',7:'文旅康養(yǎng)和創(chuàng)意設計'}row=2#從第2行開始forkey,valueindata.items():ws.append([key,value])#一次添加一行數據(必須是可迭代對象)wb.save("openpyxl.xlsx")#保存Excel文件print("創(chuàng)建和寫入excel成功")二.讀取excel文件1.使用xlrd讀取excel文件

在成功安裝xlrd庫后,使用xlrd讀取xlsx文件時,通常會出現如下的錯誤提示:xlrd.biffh.XLRDError:Excelxlsxfile;notsupported這是因為新版的xlrd(2.0.1版本)已刪除了對xls文件以外的任何內容的支持,不支持xlsx文件;如果想要使用xlrd讀取xlsx文件,則需要卸載新版后再安裝舊版xlrd(1.2.0版本),安裝命令如下:pipuninstallxlrdpipinstallxlrd==1.2.0二.讀取excel文件1.使用xlrd讀取excel文件importxlrddata=xlrd.open_workbook('openpyxl.xlsx')print('工作表數量:',data.nsheets)#獲取工作表數量print('工作表名稱:',data.sheet_names())#以列表返回所有工作表名稱table=data.sheet_by_index(0)#返回第1個工作表rowcount=table.nrows#當前工作表行數colcount=table.ncols#當前工作表列數cellinfor1=table.cell_value(0,1)#獲取指定行列中單元格的值cellinfor2=table.cell_value(7,1)print('第1個工作表行數:',table.nrows)print('第1個工作表列數:',table.ncols)print('第1個工作表1行2列的值為:',cellinfor1)print('第1個工作表8行2列的值為:',cellinfor2)print('文件讀取成功')二.讀取excel文件2.使用openpyxl讀取excel文件openpyxl中列和行的起始標識不再是從0開始,而是1開始的;從excel中讀取出來的數據只有兩種類型:即數值類型和字符串類型,參考代碼和運行后的效果如下圖所示。三.讀取excel文件批量生成word試卷完成本次任務的操作步驟:(1)導入xlrd、python-docx,打開題庫文件、獲取第一個工作表;(2)使用xlrd讀取準備好的“data.xlsx”題庫文件,將試題信息全部保存到列表中;(3)使用for循環(huán)語句控制批量生成試卷的數量;(4)通過python-docx創(chuàng)建文檔對象,并將讀取到的題庫內容按樣式寫入word文檔后保存。word文檔試卷打開效果如圖所示,以上功能請同學們以小組為單位協同完成。四.任務二小結通過本次任務的學習和實踐,使我們了解了常用的excel第三方庫,掌握了xlwt、xlrd、openpyxl的使用方法,并且通過綜合實訓的引導,能夠熟練完成excel文檔的創(chuàng)建、寫入和讀取。同時將excel和word結合應用起來,完成讀取excel數據批量生成word試卷的強化訓練,很好地起到了鞏固提高、融會貫通的目的。任務三

ppt自動化一.

python-pptx簡介

python中ppt的基本結構分別用:Slide(幻燈片):就是演示文稿中每一頁的頁面;Shape(方框、形狀、文本框;Run(文字塊):一般為較少字符和Paragraph(段落)來表示。在幻燈片中添加文本框、圖形、圖片、表格和圖表的方法如下圖所示。添加文本框add_textbox()添加圖形add_shape()添加圖片add_picture()添加表格add_table()

添加圖表add_chart()

二.創(chuàng)建pptx

通過add_slide()插入自定義版式的幻燈片,創(chuàng)建pptx參考代碼和創(chuàng)建后的演示文稿效果如下所示。importpptx#得到演示文稿的對象objobj=pptx.Presentation()#插入幻燈片add_slide()obj.slides.add_slide(obj.slide_layouts[0])#版式1obj.slides.add_slide(obj.slide_layouts[1])#版式2obj.slides.add_slide(obj.slide_layouts[2])#版式3#保存pptx文稿obj.save('ppt1.pptx')print('任務完成')二.寫入pptx

importpptx#讀取(創(chuàng)建)一個演示文稿對象obj=pptx.Presentation('ppt1.pptx')#訪問第一張幻燈片slide=obj.slides[0]#修改占位符里的內容(slide.placeholders)center_title1=slide.placeholders[0]#主標題sub_title1=slide.placeholders[1]#副標題center_title1.text='重慶城市職業(yè)學院'sub_title1.text='重慶市永川區(qū)興龍大道1099號'#訪問第二張幻燈片slide=obj.slides[1]center_title2=slide.placeholders[0]#主標題sub_title2=slide.placeholders[1]#副標題center_title2.text='學院簡介'sub_title2.text='重慶城市職業(yè)學院是教育部備案,重慶市人民政府舉辦,\重慶市教委主管的全日制公辦高等院校。'obj.save('ppt1.pptx')

1.寫入標題和副標題在指定幻燈片中寫入標題和副標題的參考代碼如下右側,創(chuàng)建后的演示文稿效果如下圖所示。二.寫入pptx

importpptxfrompptx.utilimportCm,Pt#讀取(創(chuàng)建)一個演示文稿對象obj=pptx.Presentation('ppt1.pptx')#訪問第二張幻燈片slide=obj.slides[1]#設置文本框和左邊、頂端的距離及寬度和高度left=Cm(8);top=Cm(13);width=Cm(15);height=Cm(3)#添加文本框并寫入內容text_box=slide.shapes.add_textbox(left,top,width,height)tf=text_box.text_frametf.text='地址:重慶市永川區(qū)興龍大道1099號'p1=tf.add_paragraph()p1.text='招生熱線:023-4957800049579000'p1.line_spacing=1.5#1.5倍行距='仿宋'#字體p1.font.bold=True#加粗p1.font.size=Pt(20)#字號16p2=tf.add_paragraph()p2.text='電子信箱:info@'='仿宋'p2.font.bold=Truep2.font.size=Pt(20)obj.save('ppt1.pptx')print('任務完成')

2.添加文本框并寫入內容在幻燈片指定位置通過add_textbox()插入文本框,參數依次為left,top,width,heigh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論