版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python語言程序設計PythonLanguageProgramming8文件及文件管理文件對象文件的操作os模塊文件對象文件就是一個存儲在輔助存儲器(通常是在磁盤驅動上)的數(shù)據(jù)序列文件可以包含任何數(shù)據(jù)類型,其中最簡單的就是文本文件python中字符串與其他類型之間的轉換十分容易,所以python的文本文件處理非常靈活文件的操作打開和關閉文件文件的定位文件路徑打開和關閉文件打開文件open()函數(shù)<variable>=open(<name>,<mode>)參數(shù)name為字符串格式,表示要打開的磁盤文件名字;參數(shù)mode表示打開模式,具體如表8.1所示文件打開模式含義r只讀(默認模式。如果文件不存在,則輸出錯誤)w只寫(如果文件不存在,則自動創(chuàng)建文件)a附加到文件末尾rb只讀二進制文件(默認模式。如果文件不存在,則輸出錯誤)wb只寫二進制文件(如果文件不存在,則自動創(chuàng)建文件)ab附加到二進制文件末尾r++讀寫表8.1文件打開模式打開和關閉文件打開文件【例8-1】以只讀的方式打開一個名為“stu.dat”的文件?!緟⒖即a】>>>infile=open(“stu.dat”,“r”)打開和關閉文件關閉文件close()函數(shù)【例8-2】關閉上例中名為“stu.dat”的文件?!緟⒖即a】>>>infile.close()打開和關閉文件讀取文件內容文件打開模式含義<file>.read()返回值為包含整個文件內容的一個字符串<file>.readline()返回值為文件下一行內容的字符串。讀入結果為一行并包含換行符<file>.readlines()返回值為整個文件內容的列表。每個列表項是以換行符為結尾的一行字符串表8.2文件讀取操作打開和關閉文件讀取文件內容【例8-3】以二進制的形式讀取文件“念奴嬌赤壁懷古.txt”【參考代碼】>>>f=open('念奴嬌赤壁懷古.txt','rb')>>>f<_io.BufferedReadername='念奴嬌赤壁懷古.txt'>>>>forxinf: print(x)打開和關閉文件讀取文件內容readline()和readlines()>>>file=f.readline()#執(zhí)行.read()之后,指針已經(jīng)指向文件末尾,再進行讀取操作時,讀出的內容為空。>>>file''>>>f.close()#關閉文件>>>f=open('念奴嬌赤壁懷古.txt','r',encoding='UTF-8')#再次讀取文件>>>file=f.readline()#讀取文件的一行,返回字符串>>>file'大江東去,浪淘盡,千古風流人物。\n'>>>file=f.readline()#讀取第二行,返回字符串>>>file'\n'>>>file=f.readline()#讀取第三行,返回字符串>>>file'故壘西邊,人道是,三國周郎赤壁。\n'>>>file=f.readlines()#讀取剩余文件,并返回列表>>>file['\n','亂石穿空,驚濤拍岸,卷起千堆雪。\n','\n','江山如畫,一時多少豪杰。\n','\n','遙想公瑾當年,小喬初嫁了,雄姿英發(fā)。\n','\n','羽扇綸巾,談笑間,檣櫓灰飛煙滅。\n','\n','故國神游,多情應笑我,早生華發(fā)。\n','\n','人生如夢,一尊還酹江月。']打開和關閉文件讀取文件內容使用seek()方法移動文件指針【例8-4】把一個磁盤文件的內容讀到內存并在屏幕上顯示出來。【參考代碼】f=open('念奴嬌赤壁懷古.txt','r',encoding='utf-8')whileTrue:line=f.readline()ifline:print(line)else:break打開和關閉文件寫入文件寫入文件通過打開文件函數(shù)實現(xiàn),模式選擇寫模式>>>outfile=open(“stu.dat”,“w”)在打開文件時,如果給出的文件名稱不存在,則會創(chuàng)建一個新文件;如果給出文件名的文件存在,python將會刪除它并創(chuàng)建一個新的空文件寫入信息的格式>>>print("寫入內容",file=outfile)寫入文件后要使用函數(shù)close()對文件進行關閉,只有在文件關閉后磁盤上的文件才會顯示變化打開和關閉文件寫入文件【例8-5】創(chuàng)建一個新文件f.txt,內容是從0到9的整數(shù),每個數(shù)字占一行?!緟⒖即a】file=open('f.txt','w')foriinrange(0,10):file.write(str(i)+'\n')file.close()文件的定位seek()方法移動文件指針seek(n)其中n>=0,seek(0)表示文件指針移動到文件頭;n>0時,表示移動到文件頭之后的位置,用于任意位置讀取內容時或從任意位置覆蓋內容。seek(0,2)把文件指針移到文件末尾,用于追加新內容。文件的定位seek()方法移動文件指針【例8-6】當前目錄下有一個文本文件abc.txt,請將該文件的最后4個字符復制到另一文件abc_copy.txt。【參考代碼】file1=open("abc.txt")file1.seek(3)x=file1.readlines()file2=open("abc_copy.txt",'w')foriinx:file2.write(i.upper())file1.close()file2.close()文件路徑seek()方法移動文件指針【例8-6】當前目錄下有一個文本文件abc.txt,請將該文件的最后4個字符復制到另一文件abc_copy.txt?!緟⒖即a】file1=open("abc.txt")file1.seek(3)x=file1.readlines()file2=open("abc_copy.txt",'w')foriinx:file2.write(i.upper())file1.close()file2.close()文件路徑直接文件名稱py文件和需要讀寫的文件時存儲在同一路徑下任意路徑文件需要加上文件路徑>>>infile=open(‘E:/word.txt','r')注意在Python中,文件路徑的斜杠和操作系統(tǒng)中文件路徑的斜杠方向是不一樣的>>>file1=open("c:\\abc.txt")os模塊os模塊簡介語料庫的創(chuàng)建os模塊簡介提供了非常豐富的方法用來處理文件和目錄常用方法功能描述name顧名思義就是'名字',這里的名字是指操作系統(tǒng)的名字,主要作用是判斷目前正在使用的平臺,并給出操作系統(tǒng)的名字,如Windows返回'nt';Linux返回'posix'。注意該命令不帶括號。os.getcwd()全稱應該是'getcurrentworkdirectory',獲取當前工作的目錄,如:返回結果為:'C:\\ProgramFiles\\Python36'。os.listdir(path)列出path目錄下所有的文件和目錄名(不區(qū)分文件和目錄),并返回列表。Path參數(shù)可以省略。os.walk()生成目錄樹下的所有文件名os.remove(path)刪除path指定的文件,該參數(shù)不能省略。os.rmdir(path)刪除path指定的目錄,該參數(shù)不能省略。os.mkdir(path)創(chuàng)建path指定的目錄,該參數(shù)不能省略。這樣只能建立一層,要想遞歸建立可用:os.makedirs()os.path.isfile(path)判斷指定對象是否為文件。是返回True,否則Falseos.path.isdir(path)判斷指定對象是否為目錄。是True,否則False。os.path.exists(path)檢驗指定的對象是否存在。是True,否則False.os.path.getsize()獲得文件的大小,如果為目錄,返回0os.path.abspath()獲得絕對路徑。os.path.join(path,name)連接目錄和文件名,與os.path.split(path)相對。os.path.basename(path)返回文件名os.path.dirname(path)返回文件路徑表8.3os模塊常用方法os模塊簡介>>>importos>>>os.getcwd()#獲取當前路徑'C:\\'>>>'nt'>>>os.listdir('C:\\')#c盤根目錄下文件夾和文件名稱['$360Section','$RECYCLE.BIN','$WinREAgent','360Rec','360SANDBOX','Boot','bootmgr','BOOTNXT','d03a4fb7655f10cf754baba001d238ee','DocumentsandSettings','DumpStack.log.tmp','hiberfil.sys','Intel','KwDownload','pagefile.sys','ProgramFiles','ProgramFiles(x86)','ProgramData','Recovery','safemon','swapfile.sys','SystemVolumeInformation','tmp','Users','Windows']>>>os.path.isdir('C:\\ProgramData')#判斷c盤根目錄中ProgramData是否為目錄True>>>os.path.exists('C:\\ProgramData')#檢驗c盤根目錄中ProgramData是否存在True語料庫的創(chuàng)建語料庫語料庫作為一個或者多個應用目標而專門收集的,有一定結構的、有代表的、可被計算機程序檢索的、具有一定規(guī)模的語料的集合本質上講,語料庫實際上是通過對自然語言運用的隨機抽樣,以一定大小的語言樣本來代表某一研究中所確定的語言運用的總體。它一般為某個領域的研究樣本文本集合,如司法大數(shù)據(jù)語料庫,在研究某一罪名時,可將該罪名的大量裁判文書集合,形成語料庫語料庫的創(chuàng)建從文本文件創(chuàng)建語料庫文本【例8-7】將文件夾中的txt文檔全部讀出并轉換為文本語料庫?!緟⒖即a】importospath='D:\\workstation\\構建語料庫\\txt文件\\'#.docx文件所在文件夾path1='D:\\workstation\\構建語料庫\\txt文件\\jiaotongzhaoshi.txt'#匯總的txt文件存放位置forfileinos.listdir(path):iffile[-3:]=='txt':判斷文件是否為txt文件filepath=path+'/'+file#生成待讀取文本文件路徑f=open(path1,mode='a')text=open(filepath,'r').read()#循環(huán)讀取文本文件內容f.write(text)#寫入?yún)R總文件f.close()語料庫的創(chuàng)建從docx文件創(chuàng)建語料庫文本【例8-8】將文件夾中的word文檔全部讀出并轉換為文本語料庫?!緟⒖即a】importospath='D:\\workstation\\構建語料庫\\txt文件\\'#.txt文件所在文件夾path1='D:\\workstation\\構建語料庫\\txt文件\\jiaotongzhaoshi.txt'#匯總的txt文件存放位置forfileinos.listdir(path):iffile[-3:]=='txt':filepath=path+'/'+filef=open(path1,mode='a')text=open(filepath,'r').read()f.write(text)f.close()語料庫的創(chuàng)建從pdf文件創(chuàng)建語料庫文本【例8-9】在下載的很多資料中,除了word文檔,更多的還有pdf文檔,pdf文檔中的文本無法直接處理,需要將其轉換為txt文檔?!緟⒖即a】importosfrompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreter#一個第三方庫pdfminer,安裝命令"pipinstallpdfminer"frompdfminer.pdfpageimportPDFPagefrompdfminer.converterimportTextConverterfrompdfminer.layoutimportLAParams#將一個pdf轉換成txtdefpdftotxt(filepath,outpath):globaloutfpfp=open(filepath,'rb')#以二進制格式打開一個文件用于只讀outfp=open(outpath,'w')#打開一個文件只用于寫入rsrcmgr=PDFResourceManager(caching=False)#創(chuàng)建一個PDF資源管理器對象來存儲共享資源,caching=False不緩存#創(chuàng)建一個PDF設備對象laparams=LAParams()device=TextConverter(rsrcmgr,outfp,laparams=laparams,imagewriter=None)#創(chuàng)建一個PDF解析器對象interpreter=PDFPageInterpreter(rsrcmgr,device)forpageinPDFPage.get_pages(fp,pagenos=set(),maxpages=0,caching=False,check_extractable=True):page.rotate=page.rotate%360cess_page(page)#關閉輸入流fp.close()#關閉輸出流device.close()outfp.flush()outfp.close()path='D:\\workstation\\構建語料庫\\pdf文件\\'#原pdf文件所在文件夾,末尾要加分隔符path1='D:\\workstation\\構建語料庫\\pdf文件\\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南通市2025屆高三第一次調研測試(一模)生物試卷(含答案 )
- 2024美容院股權轉讓與區(qū)域市場拓展合同3篇
- 2025年PE管材與管件行業(yè)標準化制定合同3篇
- 2024年度醫(yī)療衛(wèi)生領域知識產(chǎn)權保密協(xié)議3篇
- 2025年度廁所文化建設與設計承包合同2篇
- 2025年度衛(wèi)星遙感影像數(shù)據(jù)分析合同范本2篇
- 2024裝修工程分包合同范本
- 垃圾處理彩鋼板安裝合同模板
- 國際酒店幕墻安裝合同范本
- 辦公區(qū)咖啡店租賃協(xié)議模板
- 過敏性皮炎的護理查房
- 將配偶追加為被執(zhí)行人申請書
- 硬筆書法田字格標準尺寸
- 中建辦公商業(yè)樓有限空間作業(yè)專項施工方案
- 小細胞肺癌治療進展及預后
- 湖北省武漢市江岸區(qū)2023-2024學年四上數(shù)學期末檢測模擬試題含答案
- 2023-2024學年貴陽市花溪區(qū)四年級數(shù)學第一學期期末檢測模擬試題含答案
- 法院解凍協(xié)議書
- 《神筆馬良》教學課件
- 林業(yè)造林工程質量問題及改進措施
- 醫(yī)院職能科室管理考核標準
評論
0/150
提交評論