版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
7.1文件概述
7.2文件的打開與關(guān)閉
7.3文本文件的讀寫
7.4數(shù)據(jù)組織的維度及數(shù)據(jù)處理
7.5CSV文件的讀寫
第7章文件和數(shù)據(jù)格式化7.1文件概述1考綱考點文件的打開、關(guān)閉和讀寫(難度:??)采用CSV格式對一二維數(shù)據(jù)的文件的讀寫。(難度:???)對一維數(shù)據(jù)和二維數(shù)據(jù)的表示、儲存和處理(難度:???)2知識導(dǎo)圖3open()函數(shù)用來打開文件。語法格式如下:file=open(filename[,access_mode[,buffering[,encoding]]])其中,file是open()函數(shù)返回的文件對象。參數(shù)filename是表示文件名的字符串,是必寫參數(shù),它可以是絕對路徑,也可以是相對路徑。Access_mode是指明文件類型和操作方式的字符串。buffering是控制緩沖,encoding設(shè)置編碼格式,一般使用UTF-8。4模式描述r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認(rèn)模式r+打開一個文件用于讀寫。文件指針將會放在文件的開頭w打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫Access_mode文件類型和操作方式5先用記事本創(chuàng)建一個文本文件,取名hello.txt。輸入以下內(nèi)容并保存在d:\python下。HelloMy
Python>>>myfile=open("d:\\python\\hello.txt",'r')。
>>>print(myfile)<io.TextIOWrapper
name='d:\\python\\hello.txt'mode='r'encoding='cp936'>
>>>myfile.close()open()文件打開函數(shù),close()文件關(guān)閉函數(shù)6>>>myfile=open("d:\\python\\hello.txt",'r')>>>fileContent=myfile.read()>>>myfile.close()>>>print(fileContent)輸出結(jié)果:Hello!MyPython!>>>withopen("d:\\python\\hello.txt",'r')
as
fp:>>>fileContent=fp.read(5)>>>fp.close()>>>print(fileContent)輸出結(jié)果:Helloread()文本文件讀取函數(shù)7>>>myfile=open("d:\\python\\hello.txt",'w')>>>myfile.write("Thisisthefirstline.\nThisis
thesecondline.\n")>>>myfile.close()>>>myfile=open("d:\\python\\hello.txt",'r')>>>fileContent=myfile.read()>>>myfile.close()>>>print(fileContent)輸出結(jié)果:This
is
thefirst
lineThis
is
thesecondline當(dāng)以寫模式打開文件hello.txt時,文件原有內(nèi)容被清空,調(diào)用write()方法將字符串參數(shù)寫入文件,這里'\n'代表換行符。關(guān)閉文件后,再次用讀模式打開文件讀取內(nèi)容并輸出,共有兩行字符串。write()文本文件寫入函數(shù)8seek()函數(shù)是將文件當(dāng)前指針由引用點移動指定的字節(jié)數(shù)到指定的位置,即設(shè)置新的文件當(dāng)前位置,允許在文件中移動指針,實現(xiàn)對文件的隨機(jī)訪問。語法格式如下:seek(offset[,whence])seek()函數(shù)有兩個參數(shù):第一個參數(shù)offset是字節(jié)數(shù),表示偏移量;第二個參數(shù)whence是引用點,有如下3個取值:1.0,表示文件開始處,默認(rèn)值,意味著使用該文件的開始處作為基準(zhǔn)位置,此時字節(jié)偏移量必須為正。2.1,表示文件當(dāng)前位置,意味著使用該文件的當(dāng)前位置作為基準(zhǔn)位置,此時字節(jié)偏移量可以為負(fù)。3.2,表示文件結(jié)尾,即該文件的末尾將作為基準(zhǔn)位置。在默認(rèn)情況下,文件的讀/寫都是從文件的開始位置進(jìn)行。
seek()文件內(nèi)移動函數(shù)9>>>myfile=open("d:\\python\\hello.txt","r")>>>myfile.seek(2,0)>>>filecontent=myfile.read(5)>>>print(filecontent)輸出結(jié)果:isis
代碼如下:importjieba#導(dǎo)入結(jié)巴庫txt=open("D:\\python\\二十大報告.txt","r",encoding='utf-8').read()words=jieba.cut(txt)#使用精確模式對文本進(jìn)行分詞counts={}#通過鍵值對的形式存儲詞語及其出現(xiàn)的次數(shù)forwordinwords:iflen(word)==1:#單個詞語不計算在內(nèi)continueelse:counts[word]=counts.get(word,0)+1#遍歷所有詞語,每出現(xiàn)一次其對應(yīng)的值加1items=list(counts.items())#將鍵值對轉(zhuǎn)換成列表items.sort(key=lambdax:x[1],reverse=True)#根據(jù)詞語出現(xiàn)的次數(shù)進(jìn)行從大到小排序foriinrange(15):word,count=items[i]print("{0:<5}{1:>5}".format(word,count))例讀取文本文件*.txt,對文本文件的內(nèi)容進(jìn)行詞頻統(tǒng)計。文本文件內(nèi)容可以從網(wǎng)絡(luò)上獲取,比如《習(xí)近平在中國共產(chǎn)黨第二十次全國代表大會上作報告》,保存文本文件為“二十大報告.txt”。
文本文件處理jieba庫10例求數(shù)組元素平均值。#coding:utf-8a=[1,4,8,10,12]b=len(a)sum=0print("數(shù)組長度為:",b)foriina:sum=sum+iprint("均值為",sum/b)程序運行結(jié)果為:一維數(shù)據(jù)的表示、存儲7例:從空格分隔的文件中讀入數(shù)據(jù)。f=open("D:\\python\\f.txt","r",encoding="UTF-8")txt=f.read()print(txt)ls=txt.split()print(ls)f.close()程序運行結(jié)果為:一維數(shù)據(jù)的讀入處理.split()7例從特殊符號分割的文件中讀入數(shù)據(jù)。f=open("D:\\python\\f.txt","r",encoding="UTF-8")txt=f.read()print(txt)ls=txt.split("$")print(ls)f.close()程序運行結(jié)果為:一維數(shù)據(jù)的讀入處理.split()7例采用空格分隔方式將數(shù)據(jù)寫入文件。代碼如下:#coding:utf-8ls=["中國","美國","日本"]f=open("D:\\python\\f.txt","w",encoding="UTF-8")f.write("".join(ls))f.close()程序運行后,f.txt文件內(nèi)容為:一維數(shù)據(jù)的寫入處理.join()7二維數(shù)據(jù)的表示列表類型可以表達(dá)二維數(shù)據(jù),使用二維列表Ls=[[3.23,3.12,3.33],[3.14,3.04,3.12]]使用兩層for循環(huán)遍歷每個元素,外層列表中每個元素可以對應(yīng)一行,也可以對應(yīng)一列。例二層循環(huán)處理>>>ls=[[1,2],[3,4],[5,6]]>>>forrowinls:>>>forcolumninrow:>>>print(column)程序運行結(jié)果為:二維數(shù)據(jù)的表示、存儲7CSV(逗號分隔符)文件是一種用來存儲表格數(shù)據(jù)(數(shù)字和文本)的純文本文件,通常用于存放電子表格或數(shù)據(jù)的一種文件格式。純文本意味著該文件是一個字符序列,不包含必須像二進(jìn)制數(shù)據(jù)那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其他字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。CSV文件可以比較方便地在不同應(yīng)用之間交換數(shù)據(jù),可以將數(shù)據(jù)批量導(dǎo)出為CSV格式,然后導(dǎo)人到其他應(yīng)用程序中。很多應(yīng)用中需要導(dǎo)出報表,通常采用CSV格式,然后用Excel工具進(jìn)行后續(xù)編輯。如下所示是一個CSV文件內(nèi)容。山東齊河縣,時傳祥,男,1915-1975,掏糞工人甘肅玉門縣,王進(jìn)喜,男,1923-1970,石油工人山西平順縣,申紀(jì)蘭,女,1920-2020,農(nóng)民河南南召縣,王永民,男,1943-,計算機(jī)專家安徽懷寧縣,鄧稼先,男,1924-1986,核物理學(xué)家CSV文件簡介7例讀取CSV文件并輸出內(nèi)容。把7.5.1中所示的CSV文件內(nèi)容保存為文件名為D盤python文件夾下“全國勞動模范.csv”的CSV文件,從該文件中讀取數(shù)據(jù)并顯示出來。代碼如下:import
csvfilename="d:\\python\\全國勞動模范.csv"
#使用open()函數(shù)打開文件,如果該文件不存在,則報錯with
open(filename,'r',encoding=’utf-8’)
as
mycsvfile:
#使用reader()方法讀整個CSV文件到一個列表對象中l(wèi)ines=csv.reader(mycsvfile)#通過遍歷每個列表元素,輸出數(shù)據(jù)forline
in
lines:
print(line)程序運行結(jié)果為:讀取CSV文件7例寫入CSV文件。實例代碼如下:#coding:utf-8importcsv mylist=[["809040101","陳曉","女","1996/12/23","電子信息"],["809040103","崔元","男","1996/12/25","計算機(jī)科學(xué)與技術(shù)"]]filename="d:\\python\\filecsv2.csv"#使用open()函數(shù)打開文件,如果該文件不存在,則創(chuàng)建它withopen(filename,'w',newline='')asmycsvfile:#newline=''可以防止寫入空行myWriter=csv.writer(mycsvfile)#創(chuàng)建CSV文件寫對象
#調(diào)用writerow方法,一次寫一行,參數(shù)必須是一個列表myWriter.writerow(["809040106","段天峰","男","1997/2/14","電子信息"])#也可以調(diào)用writerows方法,一次寫入一個列表myWriter.writerows(mylist)程序運行結(jié)果為:
寫入CSV文件71.二維數(shù)據(jù)的讀入處理例從CSV格式的文件中讀入數(shù)據(jù)。#coding:utf-8importcsvfname="d:\\python\\csvfile2.csv"fo=open(fname)ls=[]forlineinfo:line=line.replace('\n','')ls.append(line.split(','))forrowinls:forcolumninrow:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 眉山藥科職業(yè)學(xué)院《軟件工程與》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度校園食堂承包與食品安全監(jiān)管合同3篇
- 2024年度汽車貸款信用保證保險合同3篇
- 2024年標(biāo)準(zhǔn)版房地產(chǎn)項目資本金監(jiān)管協(xié)議版B版
- 2024年版:教育貸款申請合同3篇
- 影調(diào)的造型作用
- 呂梁師范高等??茖W(xué)校《中國城市發(fā)展史》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024全新指紋鎖智能家居控制系統(tǒng)集成合同2篇
- 2024年特色手工藝品買賣合同詳細(xì)
- 2024年標(biāo)準(zhǔn)膩子施工勞務(wù)分包合同樣本版B版
- 2024山東能源集團(tuán)中級人才庫選拔(高頻重點提升專題訓(xùn)練)共500題附帶答案詳解
- T-CCIIA 0004-2024 精細(xì)化工產(chǎn)品分類
- 低年級革命文化類課文教學(xué)探析
- TPM知識競賽題庫含答案
- 中國成人失眠診斷與治療指南(2023版)解讀
- 解析德意志意識形態(tài)中的難解之謎生產(chǎn)關(guān)系概念與交往形式等術(shù)語的關(guān)系
- 皮膚疾病超聲檢查指南(2022版)
- 國開機(jī)考答案-工程力學(xué)(本)(閉卷)
- 2024醫(yī)院護(hù)士聘用合同
- 錢轉(zhuǎn)入別人帳戶協(xié)議書
- 《公路工程集料試驗規(guī)程》JTG-3432-2024考核試題及答案文檔
評論
0/150
提交評論