Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第6章 - Python文件操作_第1頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第6章 - Python文件操作_第2頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第6章 - Python文件操作_第3頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第6章 - Python文件操作_第4頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第6章 - Python文件操作_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python程序設(shè)計(jì)第6章Python文件操作學(xué)習(xí)目標(biāo)了解文本/二進(jìn)制文件識(shí)記文件打開(kāi)模式掌握文件和目錄基本操作知識(shí)目標(biāo)能夠操作文本文件和CSV文件能夠完成基本目錄操作能力目標(biāo)數(shù)據(jù)完整性的重視良好組織結(jié)構(gòu)對(duì)提高效率和減少錯(cuò)誤的影響情感態(tài)度與價(jià)值觀文件概述01020403文本文件操作CSV文件操作目錄操作目

錄文件概述01020403文本文件操作CSV文件操作目錄操作目

錄文件分類(lèi)文件操作函數(shù)文件:計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)信息的一種機(jī)制,允許將數(shù)據(jù)永久保存在磁盤(pán)或其他外存儲(chǔ)器上文本文件二進(jìn)制文件6.1文件概述120文本文件:保存字符編碼的文件ASCIIUNICODEUTF-8GBK*.txt、*.html/*.htm、*.json、*.log、*.ini、源代碼文件(*.py、*.cpp、*.java)6.1.1文件分類(lèi)120二進(jìn)制文件:保存數(shù)據(jù)在內(nèi)存中的字節(jié)序列序列化:將內(nèi)存中的數(shù)據(jù)對(duì)象以字節(jié)序列寫(xiě)入文件的過(guò)程反序列化:從文件中讀取字節(jié)序列再轉(zhuǎn)換成內(nèi)存數(shù)據(jù)對(duì)象的過(guò)程壓縮文件(*.zip、*.7z)可執(zhí)行文件(*.exe、*.dll、*.so)圖像文件(*.bmp、*.png、*.jpg)音視頻文件(*.mp3、*.mp4、*.avi)專(zhuān)有文件(*.dwg、*.psd、*.trec)6.1.1文件分類(lèi)121內(nèi)置函數(shù)處理文本/二進(jìn)制文件open()read()、write()、……close()標(biāo)準(zhǔn)庫(kù):csv、configparser、zipfile、pickle、sqlite3第三方庫(kù):openpyxl、python-docx、OpenCV、librosa、Pillow6.1.2文件操作函數(shù)121文件概述01020403文本文件操作CSV文件操作目錄操作目

錄文本文件操作020403CSV文件操作目錄操作目

錄文件概述01打開(kāi)文本文件讀/寫(xiě)文本文件關(guān)閉文本文件Python使用“文件對(duì)象”與文本文件交互open()打開(kāi)文件并獲取一個(gè)文件對(duì)象調(diào)用文件對(duì)象的方法讀寫(xiě)內(nèi)容close()關(guān)閉文件6.2文本文件操作121open():打開(kāi)文本文件并返回一個(gè)文件對(duì)象,以便進(jìn)行后續(xù)的操作file:要打開(kāi)的文件路徑字符串,可以是絕對(duì)路徑,也可以是相對(duì)路徑(相對(duì)于當(dāng)前正在運(yùn)行的*.py文件)mode:可選,指定文件打開(kāi)模式的字符串6.2.1打開(kāi)文件121變量=open(file[,optional_params])f1=open('demo.txt')f2=open('E:/points.dat','rb')6.2.1打開(kāi)文件122字符串說(shuō)明讀寫(xiě)模式'r'僅讀?。J(rèn)),從文件頭開(kāi)始讀取,如果文件不存在則報(bào)錯(cuò)'w'僅寫(xiě)入,如果文件不存在則創(chuàng)建新的空文件,如果存在則清空文件內(nèi)容'x'排它性創(chuàng)建,如果文件已存在則報(bào)錯(cuò)'a'追加模式,如果文件不存在則創(chuàng)建新的空文件,如果存在則在末尾追加內(nèi)容'+'讀寫(xiě)模式,可同時(shí)讀取和寫(xiě)入,與r、w、x、a模式組合使用文件模式't'文本模式(默認(rèn)),以文本格式打開(kāi)文件'b'二進(jìn)制模式,以二進(jìn)制格式打開(kāi)文件readlines([hint])讀取文件的每一行,返回一個(gè)包含讀取行的列表hint:可選,控制讀取的行數(shù),不指定則讀取全部行6.2.2讀取文件122f=open('names.txt')lines=f.readlines()#lines是一個(gè)列表forlinlines:#l是一個(gè)字符串print(l.strip('\n'))示例6-2readline([size])讀取文件下一行中的size個(gè)字符并返回,未指定size默認(rèn)讀取整行適合文件較大的情況,循環(huán)調(diào)用處理多行數(shù)據(jù)6.2.2讀取文件122f=open('names.txt')line=f.readline()#line是一個(gè)字符串,包含一行的內(nèi)容whileline!='':print(line)line=f.readline()示例6-3全文按行處理時(shí),可直接遍歷文件對(duì)象,效果和循環(huán)調(diào)用readline()一樣6.2.2讀取文件123f=open('names.txt')forlinf:#l是一個(gè)字符串,包含一行的內(nèi)容print(l)示例6-4read([size])從文件中讀取size個(gè)字符,以一個(gè)字符串的形式返回未指定size默認(rèn)讀取所有內(nèi)容6.2.2讀取文件123f=open('names.txt','r')contents=f.read()#contents是一個(gè)字符串print(contents)示例6-4writelines(string_list)接收一個(gè)所有元素均為字符串的列表對(duì)象作為參數(shù),依次將每個(gè)字符串寫(xiě)入文件該方法不會(huì)自動(dòng)在每個(gè)字符串后添加換行符6.2.3寫(xiě)入文件123f=open('writelines_demo.txt','w')names=['Danie','Kitty','Branda']f.writelines(names)示例6-7close():關(guān)閉文件確保所有的數(shù)據(jù)都被正確地寫(xiě)入到磁盤(pán)釋放系統(tǒng)資源6.2.4關(guān)閉文件124f=open('writelines_demo.txt','w')names=['Danie','Kitty','Branda']f.writelines(names)f.close()示例6-8with子句:確保文件在代碼塊執(zhí)行完畢后自動(dòng)關(guān)閉6.2.4關(guān)閉文件124withopen('writelines_demo.txt','w')asf:

names=['Danie','Kitty','Branda']

f.writelines(names)示例6-9文件概述01020403文本文件操作CSV文件操作目錄操作目

錄CSV文件操作0304目錄操作目

錄文件概述0102文本文件操作csv模塊讀/寫(xiě)CSV文件CSV文件:CommaSeparatedValues,純文本文件,用于存儲(chǔ)表格數(shù)據(jù)可以包含任意數(shù)量的記錄一般情況下一行一條記錄,不同字段用逗號(hào)分隔可與excel文件互相轉(zhuǎn)換,也可在Excel軟件中編輯6.3CSV文件操作131內(nèi)置csv模塊,可直接導(dǎo)入讀寫(xiě)CSV文件之前需要通過(guò)open()獲取文件對(duì)象6.3.1導(dǎo)入模塊131importcsvcsv.reader():創(chuàng)建一個(gè)csv閱讀器對(duì)象,該對(duì)象是可迭代對(duì)象,通過(guò)遍歷該對(duì)象處理文件的每一行6.3.2讀取文件131importcsvwithopen('csv_read_demo.csv')asf:reader=csv.reader(f)next(reader)#跳過(guò)標(biāo)題行forrowinreader:sex='女'ifrow[2]=='F'else'男'print(f'{row[0]},{sex},學(xué)號(hào)是{row[1]}')示例6-14csv.writer():創(chuàng)建一個(gè)csv寫(xiě)入器對(duì)象,通過(guò)該對(duì)象的writerow()/writerows()寫(xiě)入內(nèi)容6.3.3寫(xiě)入文件132importcsvtitle=['姓名','職業(yè)','年齡']rows=[['張三','飛行員',32],['李四','工程師',28],['錢(qián)五','插畫(huà)師',26]]withopen('write_csv_demo.csv','w',newline='')asf:writer=csv.writer(f)writer.writerow(title)writer.writerows(rows)示例6-15文件概述01020403文本文件操作CSV文件操作目錄操作目

錄目錄操作04目

錄文件概述0102文本文件操作03CSV文件操作移動(dòng)/復(fù)制/刪除文件創(chuàng)建/刪除/遍歷目錄文件路徑操作目錄是組織和管理文件的關(guān)鍵組件shutil模塊os模塊6.4目錄操作136shutil模塊move():移動(dòng)文件,移動(dòng)后原位置的文件不存在copy():拷貝文件,復(fù)制后不會(huì)更改原文件若目標(biāo)位置已經(jīng)存在同名文件,該文件將被覆蓋6.4.1文件移動(dòng)和復(fù)制136importshutilsrc1='src_files/230114.log'#原文件路徑dst1='dst_files/230114.log'#目標(biāo)文件路徑shutil.move(src1,dst1)#移動(dòng)文件src2='src_files/230115.log'#原文件路徑dst2='dst_files/230115.log'#目標(biāo)文件路徑shutil.copy(src2,dst2)#復(fù)制文件示例6-16os模塊remove():刪除文件,操作不可逆6.4.2文件刪除136importosfile_path='src_files/230116.log'os.remove(file_path)示例6-17os模塊mkdir():創(chuàng)建目錄rmdir():刪除目錄6.4.3目錄創(chuàng)建和刪除136importosdir_path='test_dir1'os.mkdir(dir_path)os.rmdir(dir_path)示例6-18os.walk():遞歸遍歷指定目錄每次返回一個(gè)三元組:(dirpath,dirnames,filenames)dirpath:當(dāng)前正在遍歷的目錄路徑dirnames:該目錄下的子目錄列表filenames:該目錄下的非目錄文件列表6.4.4目錄遍歷136importosforroot,dirs,filesinos.walk('E:/src/'):forfileinfiles:print(os.path.join(root,file))示例6-19os.listdir():返回指定目錄下所有文件和子目錄的列表,不遞歸遍歷子目錄6.4.4目錄遍歷137importosfiles=os.listdir('../chapter06')forfileinfiles:print(file)示例6-20os.path.exists():檢查指定文件或目錄是否存在,如果存在則返回True,否則返回False6.4.5文件路徑操作137importosimportshutilsrc='src_files/230115.log'#原文件路徑dst='dst_files/230115.log'#目標(biāo)文件路徑ifos.path.exists(dst):next_step=input(f'{dst}已存在,仍要復(fù)制嗎?(Y/n):')ifnext_step=='Y':shutil.copy(src,dst)print('拷貝完成!')else:print('拷貝停止!')示例6-21os.path.join():將多個(gè)路徑拼接成一個(gè)完整的文件路徑字符串6.4.5文件路徑操作137importosroot=r'E:\src'sub_dir='chapter06'file_name='demo.txt'full_path=os.path.join(root,sub_dir,file_name)print(full_path)#打?。篍:\src\chapter06\demo.txt示例6-22os.path.abspath():返回指定文件的絕對(duì)路徑,如果給定的路徑已經(jīng)是絕對(duì)路徑,則返回該路徑;否則將其轉(zhuǎn)換為絕對(duì)路徑6.4.5文件路徑操作138importosrelative_path='6-18.py'

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論