版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目九Python文件操作任務(wù)9.2任務(wù)9.3CONTENTS目錄讀寫(xiě)文件文件位置任務(wù)9.4任務(wù)9.1文件的打開(kāi)和關(guān)閉文件和文件夾的相關(guān)操作任務(wù)9.1文件的打開(kāi)和關(guān)閉文本文件存儲(chǔ)的是常規(guī)字符串,由若干文本行組成,通常每行以換行符‘\n’結(jié)尾。文本文件在磁盤(pán)上是以二進(jìn)制形式存儲(chǔ)的,在讀取和查看文本文件時(shí)字處理軟件能自動(dòng)識(shí)別,并使用正確的編碼方式解碼還原為字符串信息。9.1.1文件的概念二進(jìn)制文件將信息以字節(jié)串(bytes)形式進(jìn)行存儲(chǔ),無(wú)法用記事本或其他普通字處理軟件直接進(jìn)行編輯,也無(wú)法直接閱讀和理解,需要使用與之相關(guān)的軟件將其解碼后才能正確地讀取、顯示、修改或執(zhí)行。1.文本文件2.二進(jìn)制文件在Python語(yǔ)言中,無(wú)論文本文件還是二進(jìn)制文件,操作步驟基本一致,如下:(1)打開(kāi)或新建文件,并創(chuàng)建文件對(duì)象。(2)對(duì)文件內(nèi)容進(jìn)行讀取、寫(xiě)入、刪除、修改等操作。(3)關(guān)閉文件并保存文件內(nèi)容。9.1.2文件的打開(kāi)Python語(yǔ)言中內(nèi)建了文件對(duì)象,通過(guò)open()函數(shù)可按照指定的打開(kāi)方式打開(kāi)文件,并創(chuàng)建文件對(duì)象。open()函數(shù)的語(yǔ)法格式如下:文件對(duì)象名=open(文件名[,打開(kāi)方式])在Python語(yǔ)言中,雖然文件會(huì)在程序退出后自動(dòng)關(guān)閉,但是考慮到數(shù)據(jù)的安全性,每次使用完文件后,都需要使用close()函數(shù)關(guān)閉文件。close()函數(shù)的語(yǔ)法格式如下:9.1.3文件的關(guān)閉例如,以只寫(xiě)方式打開(kāi)一個(gè)名為“test.txt”的文件,然后關(guān)閉文件。程序代碼如下:文件對(duì)象名.close()file=open(′test.txt′,′w′)
#以只寫(xiě)方式打開(kāi)一個(gè)名為“test.txt”的文件file.close() #關(guān)閉文件在Python程序中,讀寫(xiě)文件應(yīng)優(yōu)先考慮使用上下文管理語(yǔ)句,其語(yǔ)法格式如下:9.1.4上下文管理語(yǔ)句其中,context_expression為表達(dá)式;target(s)為對(duì)象名。當(dāng)對(duì)文件內(nèi)容進(jìn)行讀寫(xiě)時(shí),可使用with語(yǔ)句,其語(yǔ)法格式如下:withcontext_expression[astarget(s)]:with-bodywithopen(文件名[,打開(kāi)方式])as文件對(duì)象名:#通過(guò)文件對(duì)象名讀寫(xiě)文件內(nèi)容語(yǔ)句示例代碼如下:withopen(′test.txt′,′r′)assrc:src.read()任務(wù)9.2讀寫(xiě)文件1.read()函數(shù)
read()函數(shù)用于從文件中讀取指定的字節(jié)數(shù),如果未給定參數(shù)或參數(shù)為負(fù),則讀取整個(gè)文件內(nèi)容,其語(yǔ)法格式如下:文件對(duì)象名.read([size])9.2.1讀文件
【例9-2】使用read()函數(shù)讀取“test.txt”文件。程序代碼如右:print("使用read()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開(kāi)“test.txt”文件withopen(′test.txt′,′r′)asfile:line=file.read(10) #讀取文件中的前10字節(jié)print("讀取文件的前10字節(jié)并輸出")print(line) #輸出文件中的前10字節(jié)print("-------------------------")#讀取文件中剩余的所有內(nèi)容content=file.read()print("讀取文件中剩余的所有內(nèi)容并輸出")print(content)
#輸出文件中剩余的所有內(nèi)容2.readline()函數(shù)
readline()函數(shù)的語(yǔ)法格式如下:文件對(duì)象名.readline([size])9.2.1讀文件【例9-3】使用readline()函數(shù)讀取“test.txt”文件。程序代碼如下:print("使用readline()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開(kāi)“test.txt”文件withopen(′test.txt′,′r′)asfile:line_1=file.readline()
#讀取第一行
print(line_1)
#輸出print("-------------------------")line_2=file.readline(10) #讀取第二行的前10個(gè)字符print(line_2)
#輸出print("-------------------------")
3.readlines()函數(shù)
readlines()函數(shù)用于讀取所有行(直到結(jié)束符EOF,EndOfFile)并返回列表,列表中每個(gè)元素為文件中的一行數(shù)據(jù),其語(yǔ)法格式如下:文件對(duì)象名.readlines()9.2.1讀文件【例9-4】使用readlines()函數(shù)讀取“test.txt”文件。程序代碼如下:print("使用readlines()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開(kāi)“test.txt”文件withopen(′test.txt′,′r′)asfile:content=file.readlines()print(content)
#讀取所有行并返回列表#輸出列表print("----------------------------")fortempincontent: #遍歷列表print(temp)1.write()函數(shù)
write()函數(shù)用于向文件中寫(xiě)入指定字符串,其語(yǔ)法格式如下:文件對(duì)象名.write(str)9.2.2寫(xiě)文件【例9-5】向“test_0.txt”文件中寫(xiě)入如下數(shù)據(jù)。ChineseMathEnglishPhysicsChemistryArtistGeography程序代碼如下:1.write()函數(shù)9.2.2寫(xiě)文件#print("使用write()函數(shù)向“test_0.txt”文件中寫(xiě)入數(shù)據(jù)\n")#file=open(′test_0.txt′,′w′)#打開(kāi)名為“test_0.txt”的文件withopen(′test_0.txt′,′w′)asfile:#向文件中輸入字符串file.write(′Chinese\n′)file.write(′Math\n′)file.write(′English\n′)file.write(′Physics\n′)file.write(′Chemistry\n′)file.write(′Artist\n′)file.write(′Geography\n′)file.close()
#關(guān)閉文件2.writelines()函數(shù)
writelines()函數(shù)用于向文件中寫(xiě)入一個(gè)序列字符串。這個(gè)序列字符串是由迭代對(duì)象產(chǎn)生的(如一個(gè)字符串列表),其語(yǔ)法格式如下:文件對(duì)象名.writelines(sequence)9.2.2寫(xiě)文件【例9-6】使用writelines()函數(shù)向已有的“test_0.txt”文件中追加如下數(shù)據(jù)。1.HelloWorld!2.Hello!WelcometoPython!如果要向文件中追加數(shù)據(jù),則需要以追加方式“a”打開(kāi)文件。在使用writelines()函數(shù)寫(xiě)入數(shù)據(jù)時(shí),同樣不會(huì)自動(dòng)在列表末尾添加換行符,需要手動(dòng)添加。程序代碼如下:9.2.2寫(xiě)文件#定義列表并賦值list_0=[′1.HelloWorld!′,′2.Hello!WelcometoPython!′]#以追加方式打開(kāi)原有的“test_0.txt”文件withopen(′test_0.txt′,′a′)asfile:file.writelines(list_0[0])#向文件中追加字符串列表file.writelines(′\n′)file.writelines(list_0[1])file.writelines(′\n′)file.close() #關(guān)閉文件任務(wù)9.3文件位置tell()函數(shù)返回文件的當(dāng)前位置,即文件位置指針的當(dāng)前位置,其語(yǔ)法格式如下:文件對(duì)象名.tell()9.3.1獲取當(dāng)前讀寫(xiě)位置【例9-8】使用tell()函數(shù)獲取文件當(dāng)前的讀寫(xiě)位置。程序代碼如下:print("使用tell()函數(shù)獲取文件當(dāng)前的讀寫(xiě)位置\n")print("-------------------------\n")#以只讀方式打開(kāi)“test_0.txt”文件withopen(′test_0.txt′,′r′)asfile:line=file.read(7)#讀取文件中的前7字節(jié)print(line) #輸出文件中的前7字節(jié)
9.3.1獲取當(dāng)前讀寫(xiě)位置
p=file.tell()
#獲取文件位置指針的當(dāng)前位置
print("當(dāng)前位置:",p) #輸出當(dāng)前位置line=file.read(5) #繼續(xù)向后讀取5字節(jié)print(line) #輸出讀取到的數(shù)據(jù)p=file.tell() #獲取文件位置指針的當(dāng)前位置print("當(dāng)前位置:",p) #輸出當(dāng)前位置file.close()seek()函數(shù)用于移動(dòng)文件位置指針到指定位置,其語(yǔ)法格式如下:文件對(duì)象名.seek(offset[,whence])9.3.2定位到某個(gè)位置【例9-9】創(chuàng)建“seek.txt”文件,并將“Hello!WelcometoPython!”存入文件,再讀取“Python”輸出到終端。程序代碼如下:file_name=input(′輸入新建的文件名:′)
#輸入文件名withopen(file_name,′w+′)asfile:
#新建文件并以讀寫(xiě)方式打開(kāi)file.write("Hello!WelcometoPython!") #將字符串寫(xiě)入文件file.seek(17)
#將文件位置指針移到第17個(gè)字符處string_0=file.read(6)
#讀取6個(gè)字符給變量string_0print(string_0) #輸出file.close() #關(guān)閉文件
任務(wù)9.4文件和文件夾相關(guān)操作9.4.1文件相關(guān)操作rename()函數(shù)存放在Python語(yǔ)言中的os模塊內(nèi),用于對(duì)文件進(jìn)行重命名操作,其語(yǔ)法格式如下:os.rename(src,dst)1.rename()函數(shù)其中,src表示要修改的文件名;dst表示修改后的新文件名。例如,將“file_12.txt”文件重命名為“file_20.txt”。示例代碼如下:>>>importos>>>os.rename("file_12.txt","file_20.txt")9.4.1文件相關(guān)操作remove()函數(shù)在Python中的os模塊中,用于對(duì)文件進(jìn)行刪除操作,其語(yǔ)法格式如下:os.remove(path)2.remove()函數(shù)其中,path表示指定路徑下的文件。例如,刪除當(dāng)前路徑下“file_20.txt”文件的示例代碼如下:>>>importos>>>os.remove("file_20.txt")9.4.2文件夾相關(guān)操作os模塊中的mkdir()函數(shù)用于創(chuàng)建文件夾。示例代碼如下:>>>importos>>>os.mkdir("file0")1.創(chuàng)建文件夾os模塊中的rmdir()函數(shù)用于刪除文件夾。示例代碼如下:>>>importos>>>os.rmdir("file0")2.刪除文件夾9.4.2文件夾相關(guān)操作os模塊中的getcwd()函數(shù)用于獲取文件夾的當(dāng)前目錄。示例代碼如下:>>>importos>>>os.getcwd()′C:\\Python\\Python3.11′3.獲取當(dāng)前目錄os模塊中的chdir()函數(shù)用于改變文件夾的默認(rèn)目錄。例如,將文件夾的當(dāng)前目錄改變?yōu)樯弦患?jí)目錄的代碼如下:>>>importos>>>os.chdir(".
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)選課系統(tǒng)課程設(shè)計(jì)
- 基于項(xiàng)目教學(xué)的課程設(shè)計(jì)
- 四川省綿陽(yáng)市安州區(qū)2024年七年級(jí)上學(xué)期語(yǔ)文期中試卷【附答案】
- 《語(yǔ)文園地四》(教學(xué)設(shè)計(jì))二年級(jí)語(yǔ)文上冊(cè)同步高效課堂系列(統(tǒng)編版)
- 五年級(jí)上冊(cè)英語(yǔ)課件-Unit-3-Fun-Facts-人教精通版
- 《課文(二)6 一封信》教案-2024-2025學(xué)年二年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- Unit 1 Section B1a~2b 教案 -2024-2025學(xué)年人教版七年級(jí)英語(yǔ)上冊(cè)
- 月考檢測(cè)(第一~二單元)(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 車(chē)間裝修安全協(xié)議關(guān)鍵內(nèi)容
- 研發(fā)中心裝修合同樣本
- 技能認(rèn)證叉車(chē)司機(jī)高級(jí)考試(習(xí)題卷3)
- 護(hù)理學(xué)導(dǎo)論(高職)全套教學(xué)課件
- 《中國(guó)古代音樂(lè)史》課件
- 讀書(shū)分享讀書(shū)交流會(huì)《唐詩(shī)三百首》
- 設(shè)計(jì)的原則 課件-2023-2024學(xué)年高中通用技術(shù)地質(zhì)版(2019)必修《技術(shù)與設(shè)計(jì)1》
- 全國(guó)高中青年數(shù)學(xué)教師優(yōu)質(zhì)課大賽一等獎(jiǎng)《函數(shù)的單調(diào)性》課件
- 物業(yè)管理之綠化管理培訓(xùn)
- 第九章 智力(智力的理論、發(fā)展、測(cè)量、教育教學(xué))
- 酒窖土方開(kāi)挖施工方案范本
- 思想道德與法治2023版第三章繼承優(yōu)良傳統(tǒng) 弘揚(yáng)中國(guó)精神 教學(xué)設(shè)計(jì)
- 彩鋼棚車(chē)棚施工方案
評(píng)論
0/150
提交評(píng)論