版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目九Python文件操作任務(wù)9.2任務(wù)9.3CONTENTS目錄讀寫文件文件位置任務(wù)9.4任務(wù)9.1文件的打開和關(guān)閉文件和文件夾的相關(guān)操作任務(wù)9.1文件的打開和關(guān)閉文本文件存儲(chǔ)的是常規(guī)字符串,由若干文本行組成,通常每行以換行符‘\n’結(jié)尾。文本文件在磁盤上是以二進(jìn)制形式存儲(chǔ)的,在讀取和查看文本文件時(shí)字處理軟件能自動(dòng)識(shí)別,并使用正確的編碼方式解碼還原為字符串信息。9.1.1文件的概念二進(jìn)制文件將信息以字節(jié)串(bytes)形式進(jìn)行存儲(chǔ),無法用記事本或其他普通字處理軟件直接進(jìn)行編輯,也無法直接閱讀和理解,需要使用與之相關(guān)的軟件將其解碼后才能正確地讀取、顯示、修改或執(zhí)行。1.文本文件2.二進(jìn)制文件在Python語言中,無論文本文件還是二進(jìn)制文件,操作步驟基本一致,如下:(1)打開或新建文件,并創(chuàng)建文件對(duì)象。(2)對(duì)文件內(nèi)容進(jìn)行讀取、寫入、刪除、修改等操作。(3)關(guān)閉文件并保存文件內(nèi)容。9.1.2文件的打開Python語言中內(nèi)建了文件對(duì)象,通過open()函數(shù)可按照指定的打開方式打開文件,并創(chuàng)建文件對(duì)象。open()函數(shù)的語法格式如下:文件對(duì)象名=open(文件名[,打開方式])在Python語言中,雖然文件會(huì)在程序退出后自動(dòng)關(guān)閉,但是考慮到數(shù)據(jù)的安全性,每次使用完文件后,都需要使用close()函數(shù)關(guān)閉文件。close()函數(shù)的語法格式如下:9.1.3文件的關(guān)閉例如,以只寫方式打開一個(gè)名為“test.txt”的文件,然后關(guān)閉文件。程序代碼如下:文件對(duì)象名.close()file=open(′test.txt′,′w′)
#以只寫方式打開一個(gè)名為“test.txt”的文件file.close() #關(guān)閉文件在Python程序中,讀寫文件應(yīng)優(yōu)先考慮使用上下文管理語句,其語法格式如下:9.1.4上下文管理語句其中,context_expression為表達(dá)式;target(s)為對(duì)象名。當(dāng)對(duì)文件內(nèi)容進(jìn)行讀寫時(shí),可使用with語句,其語法格式如下:withcontext_expression[astarget(s)]:with-bodywithopen(文件名[,打開方式])as文件對(duì)象名:#通過文件對(duì)象名讀寫文件內(nèi)容語句示例代碼如下:withopen(′test.txt′,′r′)assrc:src.read()任務(wù)9.2讀寫文件1.read()函數(shù)
read()函數(shù)用于從文件中讀取指定的字節(jié)數(shù),如果未給定參數(shù)或參數(shù)為負(fù),則讀取整個(gè)文件內(nèi)容,其語法格式如下:文件對(duì)象名.read([size])9.2.1讀文件
【例9-2】使用read()函數(shù)讀取“test.txt”文件。程序代碼如右:print("使用read()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開“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ù)的語法格式如下:文件對(duì)象名.readline([size])9.2.1讀文件【例9-3】使用readline()函數(shù)讀取“test.txt”文件。程序代碼如下:print("使用readline()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開“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ù),其語法格式如下:文件對(duì)象名.readlines()9.2.1讀文件【例9-4】使用readlines()函數(shù)讀取“test.txt”文件。程序代碼如下:print("使用readlines()函數(shù)讀取“test.txt”文件\n")#以只讀方式打開“test.txt”文件withopen(′test.txt′,′r′)asfile:content=file.readlines()print(content)
#讀取所有行并返回列表#輸出列表print("----------------------------")fortempincontent: #遍歷列表print(temp)1.write()函數(shù)
write()函數(shù)用于向文件中寫入指定字符串,其語法格式如下:文件對(duì)象名.write(str)9.2.2寫文件【例9-5】向“test_0.txt”文件中寫入如下數(shù)據(jù)。ChineseMathEnglishPhysicsChemistryArtistGeography程序代碼如下:1.write()函數(shù)9.2.2寫文件#print("使用write()函數(shù)向“test_0.txt”文件中寫入數(shù)據(jù)\n")#file=open(′test_0.txt′,′w′)#打開名為“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ù)用于向文件中寫入一個(gè)序列字符串。這個(gè)序列字符串是由迭代對(duì)象產(chǎn)生的(如一個(gè)字符串列表),其語法格式如下:文件對(duì)象名.writelines(sequence)9.2.2寫文件【例9-6】使用writelines()函數(shù)向已有的“test_0.txt”文件中追加如下數(shù)據(jù)。1.HelloWorld!2.Hello!WelcometoPython!如果要向文件中追加數(shù)據(jù),則需要以追加方式“a”打開文件。在使用writelines()函數(shù)寫入數(shù)據(jù)時(shí),同樣不會(huì)自動(dòng)在列表末尾添加換行符,需要手動(dòng)添加。程序代碼如下:9.2.2寫文件#定義列表并賦值list_0=[′1.HelloWorld!′,′2.Hello!WelcometoPython!′]#以追加方式打開原有的“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)前位置,其語法格式如下:文件對(duì)象名.tell()9.3.1獲取當(dāng)前讀寫位置【例9-8】使用tell()函數(shù)獲取文件當(dāng)前的讀寫位置。程序代碼如下:print("使用tell()函數(shù)獲取文件當(dāng)前的讀寫位置\n")print("-------------------------\n")#以只讀方式打開“test_0.txt”文件withopen(′test_0.txt′,′r′)asfile:line=file.read(7)#讀取文件中的前7字節(jié)print(line) #輸出文件中的前7字節(jié)
9.3.1獲取當(dāng)前讀寫位置
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)文件位置指針到指定位置,其語法格式如下:文件對(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:
#新建文件并以讀寫方式打開file.write("Hello!WelcometoPython!") #將字符串寫入文件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語言中的os模塊內(nèi),用于對(duì)文件進(jìn)行重命名操作,其語法格式如下: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)行刪除操作,其語法格式如下: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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46919-2025基于12.5 kHz信道的時(shí)分多址(TDMA)專用數(shù)字集群通信系統(tǒng)移動(dòng)臺(tái)技術(shù)規(guī)范
- 企業(yè)商務(wù)合作流程規(guī)范制度
- 公章的管理制度
- 2026年公務(wù)員考試行政職業(yè)能力測驗(yàn)題集
- 2026年環(huán)境工程職稱考試水污染治理與水資源保護(hù)實(shí)務(wù)題
- 2026年IT設(shè)備室日常維護(hù)與6S管理的資格認(rèn)證考試題目
- 2026年金融衍生品市場風(fēng)險(xiǎn)監(jiān)控策略題
- 2026年委托硬膠囊合同
- 2026年委托具喉合同
- 北京市石景山區(qū)2025-2026學(xué)年上學(xué)期期末考試高一思想政治試題(含答案)
- 檢驗(yàn)科內(nèi)控制度
- DB44-T 2771-2025 全域土地綜合整治技術(shù)導(dǎo)則
- 淺談醫(yī)藥價(jià)格管理現(xiàn)狀透析
- 全屋定制合同協(xié)議模板2025年標(biāo)準(zhǔn)版
- 起重機(jī)檢測合同協(xié)議
- 黨支部書記2025年度抓基層黨建工作述職報(bào)告
- 2025年數(shù)字人民幣應(yīng)用基礎(chǔ)考試模擬試卷及答案
- 2025版過敏性休克搶救指南(醫(yī)護(hù)實(shí)操版)
- 孕婦監(jiān)護(hù)和管理課件
- 2026年安全員之A證考試題庫500道(必刷)
- 眼科疾病常見癥狀解析及護(hù)理指南
評(píng)論
0/150
提交評(píng)論