Python程序設計 課件 第7章 Python文件操作_第1頁
Python程序設計 課件 第7章 Python文件操作_第2頁
Python程序設計 課件 第7章 Python文件操作_第3頁
Python程序設計 課件 第7章 Python文件操作_第4頁
Python程序設計 課件 第7章 Python文件操作_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章Python文件操作文件與文件操作CSV文件讀取與寫入操作文件操作的應用文件與文件操作CSV文件讀取與寫入操作文件操作的應用掌握文件的基本操作如打開、讀寫、關閉、備份等等學會使用不同模式打開文件學會使用上下文管理器來自動關閉文件掌握CSV文件讀取與寫入操作掌握文件操作的綜合應用文件與文件操作文件數(shù)據的組織形式文件的操作方法7.17.1.1文件數(shù)據的組織形式在程序執(zhí)行過程,如果要持久地存儲數(shù)據或數(shù)據處理的結果,就需要將數(shù)據保存到文件中。當程序運行結束或關機后,存儲在文件中的數(shù)據不丟失,以后還可以重復使用,并且可以在不同程序之間共享。7.1.1文件數(shù)據的組織形式按數(shù)據的組織形式,文件分為文本文件和二進制文件。文本文件存儲的是字符串,采用單一特定編碼(如UTF-8編碼),由若干文本行組成,通常每行都以換行符“\n”結尾。擴展名為txt、csv等格式的文件都是常見的文本文件,在Windows系統(tǒng)中可以用記事本查看和編輯。1.文本文件7.1.1文件數(shù)據的組織形式二進制文件以字節(jié)串的形式對信息進行存儲,無法直接用記事本等普通的文本處理軟件編輯和閱讀,需要進行解碼才能正確地顯示、修改或執(zhí)行。圖像文件、音視頻文件、可執(zhí)行文件等都屬于二進制文件。在Python程序中,除了可以直接操作txt格式的文件,還可以通過調用Python標準庫和豐富的第三方庫所提供的方法對多種格式的文件進行管理和操作。2.二進制文件7.1.2文件的操作方法文件操作的作用就是把一些內容(數(shù)據)存儲存放起來,可以讓程序下一次執(zhí)行的時候直接使用,而不必重新制作一份,省時省力。編寫程序操作計算機本地文件的步驟一般如下:1通過文件對象對文件內容進行讀取、寫入、修改、刪除等操作:read()、readline()、readlines()、write()等。23關閉并保存文件:close()。打開文件:通過open()函數(shù),需指定要打開的文件的路徑和名稱,創(chuàng)建一個文件對象。7.1.2文件的操作方法1.文件的打開對文件操作之前需要使用open()函數(shù)打開文件,打開之后將返回一個文件對象(file對象)。如果指定的文件不存在、訪問權限不夠、磁盤空間不足或因其他原因而導致創(chuàng)建文件對象失敗,則拋出異常。open()函數(shù)的語法格式如下:file_object=open(file,mode,encoding)功能:

根據指定的操作模式打開文件,并返回一個文件對象。參數(shù)說明:file:用字符串表示的文件名稱。如果文件不在當前目錄中,則需要指定文件絕對路徑。mode:文件打開模式,設置文件的打開模式,取值有r、w、a。

encoding:字符編碼格式。如ASCII、CP936、GBK、UTF-8等。7.1.2文件的操作方法1.文件的打開常用的文件打開模式模式描述r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。w打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創(chuàng)建新文件。a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。b二進制模式+讀、寫模式,可與其他模式組合使用,如r+、w+、a+都表示可讀可寫7.1.2文件的操作方法1.文件的打開調用open()函數(shù)時,如果要在當前目錄下打開文件,則第一個參數(shù)可以直接使用文件名,否則需要在文件名中包含路徑。文件路徑中的分隔符“\”需要加轉義符“\”。為減少路徑分隔符的輸入,通常在包含路徑的文件名前面加上“r”或“R”,表示使用原始字符串。f=open("data.txt","r")#以只讀模式打開當前目錄下的文件

f=open(r"c:\data.txt","w")#以寫模式打開c盤中的文件

f=open("c:\\data.txt","w")#文件路徑中加轉義字符7.1.2文件的操作方法數(shù)據讀取方法描述2.數(shù)據的讀取方法方法描述read([size])讀取文件所有內容,返回字符串類型,參數(shù)size表示讀取的數(shù)量,以byte為單位,可以省略readline([size])讀取文件一行的內容,以字符串形式返回,若定義了size,則讀出一行的部分。readlines([size])讀取所有的行到列表里面[line1,line2,…,linen](文件每一行是list的一個成員),參數(shù)size表示讀取內容的總長7.1.2文件的操作方法2.數(shù)據的讀取方法例【7-1】讀取txt文件。所讀取的txt文件內容如下所示。file=open("再別康橋.txt",mode='r')content=file.read()print(content)file.close()運行結果:再別康橋作者:徐志摩輕輕的我走了,正如我輕輕的來;我輕輕的招手,作別西天的云彩?!?.1.2文件的操作方法2.數(shù)據的讀取方法例【7-2】讀取txt文件時指定讀取數(shù)量。file=open("再別康橋.txt",mode='r')content=file.read(2)print(content)file.close()運行結果:再別readlines()讀取后得到的是每行數(shù)據組成的列表,一行樣本數(shù)據全部存儲為一個字符串,換行符也未去掉。另外,每次用完文件后,都要關閉文件,否則,文件就會一直被Python占用,不能被其他進程使用。7.1.2文件的操作方法用open語句打開文件,執(zhí)行讀寫操作后,需要使用文件對象的close()方法關閉文件,才能夠將文件操作的結果保存到文件中。例如,關閉打開的文件對象f所使用的語句f.close()。文件在打開并操作完成之后應及時關閉,否則程序的運行可能會出現(xiàn)異常。在打開的文本文件中寫入數(shù)據時,Python出于效率的考慮會先將數(shù)據臨時存儲緩沖區(qū),只有使用close()方法關閉文件時,才會將緩沖區(qū)中的數(shù)據真正寫入文件。3.文件的關閉7.1.2文件的操作方法使用with語句進行文件讀寫可以自動管理資源,不論因什么原因而跳出with代碼塊,with語句總能保證文件被正確關閉。例如,withopen(filename,mode,encoding)asf:#這里可以通過文件對象f進行文件訪問4.上下文管理語句CSV文件讀取與寫入操作讀取CSV文件CSV文件寫入與關閉7.27.2.1讀取CSV文件CSV文件也稱為字符分隔值(CommaSeparatedValues,CSV)文件,因為分隔符除了逗號,還可以是制表符。CSV是一種常用的文本格式,用以存儲表格數(shù)據,包括數(shù)字或者字符。CSV文件具有如下特點:(1)純文本,使用某個字符集,例如ASCI1、Unicode或GB2312。(2)以行為單位讀取數(shù)據,每行一條記錄。(3)每條記錄被分隔符分隔為字段。(4)每條記錄都有同樣的字段序列。Python提供了CSV標準庫,importcsv之后就可以讀取CSV格式文件了。通過csv模塊的writer()方法和reader()方法可以創(chuàng)建用于讀寫CSV文件的對象,方便地進行CSV文件訪問。7.2.1讀取CSV文件功能:根據文件對象fileobj創(chuàng)建并返回一個用于寫操作的csv文件對象。調用csv文件對象的writerow()方法或writerows()方法writerow()方法:將一行數(shù)據寫入csv文件。writerows()方法:將多行數(shù)據寫入csv文件。1.writer(fileobj)方法7.2.1讀取CSV文件功能:根據可迭代對象iterable(如文件對象或列表)創(chuàng)建并返回一個用于讀操作的CSV文件對象。2.reader(iterable)方法例【7-3】利用reader()方法讀取“studentinfo.csv”,并顯示文件內容。importcsvwithopen("studentinfo.csv",'r')asf:csv_reader=csv.reader(f)rows=[rowforrowincsv_reader]foriteminrows:print(item)f.close()運行結果:['學號','姓名','性別','班級']['20210101','初心','女','大數(shù)據01']['20210201','步忘','男','智能01']['20210301','夢想','男','區(qū)塊鏈01']csv_reader是一個可迭代對象,它每次迭代CSV文件中的一行,并將該行中的各列數(shù)據以字符串的形式存入列表后再返回該列表。7.2.2CSV文件寫入與關閉write()函數(shù)用于向文件中寫入指定字符串,同時需要將open()函數(shù)中文件打開的參數(shù)設置為mode=w。其中,

write()是逐次寫入.

writelines()可將一個列表中的所有數(shù)據—次性寫入文件。writerow()函數(shù)將列表中的每個元素逐行寫入文件。如果有換行需要,則需要在每條數(shù)據后增加換行符,同時用“字符串.

join()”的方法將每個變量數(shù)據聯(lián)合成一個字符串,并增加間隔符“\t”。1.文件的寫入7.2.2CSV文件寫入與關閉1.文件的寫入例【7-4】CSV格式文件的寫入應用。importcsvcontent=[['學號','姓名','性別','班級'],['20210101','初心','女','大數(shù)據01'],['20210201','步忘','男','智能01'],['20210301','夢想','男','區(qū)塊鏈01']]f=open("studentinfo.csv",'w',newline='')content_out=csv.writer(f)forconincontent:content_out.writerow(con)f.close()運行結果:學號,姓名,性別,班級20210101,初心,女,大數(shù)據0120210201,步忘,男,智能0120210301,夢想,男,區(qū)塊鏈01content是一個嵌套列表,包含4個子列表;open()函數(shù)中的參數(shù)newline用于控制通用換行模式。7.2.2CSV文件寫入與關閉2.關閉文件文件操作完畢,一定要使用關閉文件close()方法,以便釋放資源供其他程序使用。文件對象.close()文件操作的應用數(shù)據的維度一維和二維數(shù)據的讀寫7.37.3.1數(shù)據的維度數(shù)據在被計算機處理前需要進行一定的組織,表明數(shù)據之間的基本關系和邏輯,進而形成“數(shù)據的維度”。根據數(shù)據的關系不同,數(shù)據組織可以分為:一維數(shù)據、二維數(shù)據和高維數(shù)據。一維數(shù)據由對等關系的有序或無序數(shù)據構成,采用線性方式組織,對應于數(shù)學中數(shù)數(shù)組的概念。二維數(shù)據也稱表格數(shù)據,由關聯(lián)關系數(shù)據構成,采用二維表格方式組織,對應于數(shù)學中的矩陣,常見的表格都屬于二維數(shù)據。高維數(shù)據由鍵值對類型的數(shù)據構成,采用對象方式組織,可以多層嵌套,屬于維度更高的數(shù)據組織方式。高維數(shù)據在Web系統(tǒng)中十分常用,作為當今Internet組織內容的主要方式,高維數(shù)據衍生出HTML、XML、JSON等具體數(shù)據組織的語法結構。高維數(shù)據相比一維和二維數(shù)據能表達更加靈活和復雜的數(shù)據關系。注意7.3.2一維和二維數(shù)據的讀寫1.一維數(shù)據的處理一維數(shù)據是最簡單的數(shù)據組織類型,由于是線性結構,在Python語言中主要采用列表形式表示。比如個人愛好就可以用一個列表變量表示。hobby=['運動','讀書','跳舞','唱歌']一維數(shù)據的文件存儲主要是采用特殊字符分隔各數(shù)據。比如采用空格分隔、逗號分隔、換行分隔、其他特殊符號分隔。其中,逗號分隔的存儲格式叫作CSV格式被廣泛應用,大部分編輯器都支持直接讀入或保存文件為CSV格式,如Windows平臺上的記事本或微軟OfficeExcel等。存儲的文件一般采用.csv為擴展名。一維數(shù)據采用簡單的列表形式表示,一位數(shù)據的處理與列表類型操作一致。7.3.2一維和二維數(shù)據的讀寫1.一維數(shù)據的處理例【7-5】將愛好列表的數(shù)據寫入CSV文件后,并讀出,顯示。hobby=['運動','讀書','跳舞','唱歌']f=open("hobby.csv","w")f.write(",".join(hobby)+"\n")f.close()f_new=open("hobby.csv","r")ls=f_new.read().strip("\n").split(".")f_new.close()print(ls)運行結果:['運動,讀書,跳舞,唱歌']7.3.2一維和二維數(shù)據的讀寫2.二維數(shù)據的處理二維數(shù)據由多個一維數(shù)據構成,可以看作是一維數(shù)據的組合形式。因此,二維數(shù)據可以采用二維列表來表示,即列表的每個元素對應二維數(shù)據的一行,這個元素本身也是列表類型,其內部各元素對應這行中的各列值。二維數(shù)據由一維數(shù)據組成,用CSV格式文件存儲。CSV文件的每一行是一維數(shù)據,整個CSV文件是一個二維數(shù)據。二維數(shù)據存儲為CSV格式,需要將二維列表對象寫入CSV格式文件以及將CSV格式讀入成二維列表對象。7.3.2一維和二維數(shù)據的讀寫2.二維數(shù)據的處理例【7-6】讀取score.csv中的數(shù)據,統(tǒng)計分析成績的平均值,并打印出結果。importcsvscores=[]#創(chuàng)建空列表,用于儲存從csv文件中讀取的成績信息csvfilepath='score.csv'withopen(csvfilepath,newline='')asf:#打開文件

f_csv=csv.reader(f)#創(chuàng)建csv.reader對象

headers=next(f_csv)#標題

forrowinf_csv:#循環(huán)打印各行(列表)

scores.append(row)print("原始記錄:",scores)scoresData=[]forrecinscores:scoresData.append(int(rec[2]))print("成績列表:",scoresData)print("平均成績:",sum(scoresData)/len(scoresData))運行結果:原始記錄:[['20220101','申志凡','99'],['20220102','馮默風','78'],['20220103','石雙英','84'],['20220104','史伯威','101']]成績列表:[99,78,84,101]平均成績:90.5綜合案例

簡易銀行賬戶管理系統(tǒng)實現(xiàn)7.47.4綜合案例:簡易銀行賬戶管理系統(tǒng)實現(xiàn)例【7-7】利用面向對象設計編程思想,創(chuàng)建一個簡單的銀行賬戶管理系統(tǒng)。見教材運行結果:

見教材文件是數(shù)據的抽象和集合,文件方式可以持久地

溫馨提示

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

評論

0/150

提交評論