Python基礎(chǔ)教程 課件 項(xiàng)目九 Python文件操作_第1頁(yè)
Python基礎(chǔ)教程 課件 項(xiàng)目九 Python文件操作_第2頁(yè)
Python基礎(chǔ)教程 課件 項(xiàng)目九 Python文件操作_第3頁(yè)
Python基礎(chǔ)教程 課件 項(xiàng)目九 Python文件操作_第4頁(yè)
Python基礎(chǔ)教程 課件 項(xiàng)目九 Python文件操作_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論