Python數(shù)據(jù)分析及應(yīng)用 課件 第6章Python文件_第1頁(yè)
Python數(shù)據(jù)分析及應(yīng)用 課件 第6章Python文件_第2頁(yè)
Python數(shù)據(jù)分析及應(yīng)用 課件 第6章Python文件_第3頁(yè)
Python數(shù)據(jù)分析及應(yīng)用 課件 第6章Python文件_第4頁(yè)
Python數(shù)據(jù)分析及應(yīng)用 課件 第6章Python文件_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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)介

1云南財(cái)經(jīng)大學(xué)信息學(xué)院

Python數(shù)據(jù)分析及應(yīng)用第六章目錄

6.1Python文件概述6.2文件操作6.3Python文件夾的操作(1)知識(shí)目標(biāo):理解計(jì)算機(jī)中文件、文件夾及路徑的概念,理解在Python中文本文件和二進(jìn)制文件的區(qū)別。(2)技能目標(biāo):掌握Python標(biāo)準(zhǔn)庫(kù)中實(shí)現(xiàn)打開(kāi)(創(chuàng)建)、讀寫(xiě)和關(guān)閉文件與CSV文件的命令。掌握OS標(biāo)準(zhǔn)庫(kù)中操作文件夾的命令。(3)素質(zhì)目標(biāo):具備具體問(wèn)題具體分析的能力,以及解決問(wèn)題的能力。3學(xué)習(xí)目標(biāo)運(yùn)行程序時(shí),我們常用變量來(lái)保存數(shù)據(jù)。程序關(guān)閉后,變量里的數(shù)據(jù)會(huì)被釋放掉,如果希望程序結(jié)束后仍然能夠使用數(shù)據(jù),就需要用文件來(lái)保存數(shù)據(jù)。因?yàn)槲募仟?dú)立存儲(chǔ)在外存儲(chǔ)器上的數(shù)據(jù)序列,可以靈活地反復(fù)地使用。在Python中對(duì)文件的操作,不同的庫(kù)有不同的命令,本章只介紹Python標(biāo)準(zhǔn)庫(kù)中常用的文件操作命令,其他不同的庫(kù)或模塊對(duì)文件進(jìn)行操作的命令將會(huì)在后續(xù)使用到的章節(jié)中再做相應(yīng)介紹。4本章導(dǎo)讀56.1Python文件概述計(jì)算機(jī)中的文件是用于存儲(chǔ)和組織數(shù)據(jù)的一種數(shù)據(jù)存儲(chǔ)單元,其內(nèi)容可以包含文本、圖像、音頻、視頻等各種類型的數(shù)據(jù)。對(duì)文件進(jìn)行操作時(shí),我們需要知道該文件在計(jì)算機(jī)上的存儲(chǔ)位置,這就是文件的路徑。文件路徑由盤(pán)符、文件夾名和文件名組成。文件有兩種路徑:絕對(duì)路徑:從磁盤(pán)的根目錄開(kāi)始定位,直到文件所在的對(duì)應(yīng)位置為止的完整路徑。相對(duì)路徑:從當(dāng)前工作目錄開(kāi)始定位,直到文件所在的對(duì)應(yīng)位置為止的部分路徑。在對(duì)文件進(jìn)行操作時(shí),我們要根據(jù)具體情況來(lái)選擇使用哪一種文件路徑。在Python中,文件可以看成只有兩種存儲(chǔ)方式:文本文件和二進(jìn)制文件。文本文件是由有編碼的字符組成,擴(kuò)展名為T(mén)XT、CSV、XLSX等的文件是文本文件。二進(jìn)制文件是由0和1組成的字節(jié)數(shù)據(jù),擴(kuò)展名為JPG、WAV等圖片的、音頻的、視頻的文件都是二進(jìn)制文件。6.2文件操作在Python中對(duì)文件都是采用先打開(kāi)文件,然后對(duì)文件進(jìn)行其他操作,最后關(guān)閉文件的操作流程。在Python里,文件也是一種類型對(duì)象,類似前面已經(jīng)學(xué)習(xí)過(guò)的數(shù)字、字符、列表等類型,也是采用<對(duì)象>.<函數(shù)或方法>的方式進(jìn)行操作。6.2文件操作

6.2.1文件的操作(一)打開(kāi)(創(chuàng)建)文件在Python中,打開(kāi)(創(chuàng)建)文件使用的是open函數(shù)。其基本語(yǔ)法格式如下:<fileobj>=open(<filename>[,<accessmode>][,encoding=<encodemode>]…)功能:打開(kāi)(創(chuàng)建:當(dāng)文件不存在時(shí))一個(gè)文件,并返回給文件對(duì)象<fileobj>?!緟?shù)解析】filename:要打開(kāi)的文件名稱,可以寫(xiě)絕對(duì)路徑,也可以寫(xiě)相對(duì)路徑,必選參數(shù)。accessmode:打開(kāi)文件的訪問(wèn)模式,可選參數(shù),默認(rèn)為只讀(r)。常見(jiàn)的文件訪問(wèn)模式如表6-1所示。encoding:指定要打開(kāi)的文件中字符的編碼方式,可選參數(shù),默認(rèn)為“None”。其中<encodemode>的值根據(jù)文件中的具體編碼方式取“GBK”、“GB2312”、“UTF-8”等。6.2文件操作

6.2.1文件的操作訪問(wèn)模式含義‘r’只讀模式,如果文件不存在,就返回異常FileNoundError,默認(rèn)值‘w’覆蓋寫(xiě)模式,如果文件不存在則創(chuàng)建,存在則完全覆蓋‘x’創(chuàng)建寫(xiě)模式,如果文件不存在則創(chuàng)建,存在則返回異常FileExistsError‘a(chǎn)’追加寫(xiě)模式,如果文件不存在則創(chuàng)建,存在則在文件最后追加內(nèi)容‘t’文本文件模式,與r/w/x/a組合使用,默認(rèn)值‘b’二進(jìn)制文件模式,與r/w/x/a組合使用‘+’同時(shí)讀寫(xiě)模式,與r/w/x/a組合使用表6-1文件的訪問(wèn)模式6.2文件操作

6.2.1文件的操作實(shí)例6-1用Python命令在“d:\pyfile\”文件夾中創(chuàng)建名為“dt1.txt”的文本文件,完整的代碼如下:path="d:\pyfile\dt1.txt"fn=open(path,"w")print()fn.close()程序運(yùn)行結(jié)果:d:\pyfile\dt1.txt下面我們就用open函數(shù)在D盤(pán)下的pyfile文件夾中創(chuàng)建一個(gè)空的txt文件6.2文件操作

6.2.1文件的操作(二)關(guān)閉文件1.使用close方法關(guān)閉已打開(kāi)的文件文件使用結(jié)束后可以用close方法關(guān)閉,釋放文件的使用授權(quán),其基本語(yǔ)法格式如下:<fileobj>.close()例如實(shí)例6-1中,代碼的最后一行就是使用“fn.close()”命令關(guān)閉了已打開(kāi)的文件。6.2文件操作

6.2.1文件的操作有時(shí),當(dāng)我們使用close命令來(lái)關(guān)閉文件時(shí),如果程序存在錯(cuò)誤,會(huì)導(dǎo)致close命令未執(zhí)行,文件將不會(huì)關(guān)閉。沒(méi)有妥善地關(guān)閉文件可能會(huì)導(dǎo)致數(shù)據(jù)丟失或受損。而有時(shí),如果在程序中過(guò)早地調(diào)用close方法,當(dāng)需要使用文件時(shí)它又已關(guān)閉,從而無(wú)法訪問(wèn),這也會(huì)導(dǎo)致更多的錯(cuò)誤。所以,并非在任何情況下都能輕松確定關(guān)閉文件的恰當(dāng)時(shí)機(jī)。因此,我們可以使用上下文管理器來(lái)解決以上問(wèn)題。6.2文件操作

6.2.1文件的操作2.使用上下文管理器關(guān)閉已打開(kāi)的文件上下文管理器(contextmanager)用于規(guī)定某個(gè)對(duì)象的使用范圍。一旦進(jìn)入或者離開(kāi)該使用范圍,則會(huì)有特殊操作被調(diào)用。對(duì)于文件操作來(lái)說(shuō),我們需要在讀寫(xiě)結(jié)束時(shí)關(guān)閉文件,而上下文管理器可以在不需要文件的時(shí)候,自動(dòng)關(guān)閉文件。其基本語(yǔ)法格式如下:withopen(<filename>)as<fileobj>:<語(yǔ)句塊>關(guān)鍵字with在不需要訪問(wèn)文件后會(huì)將其關(guān)閉。通過(guò)使用上面所示的結(jié)構(gòu),我們只管打開(kāi)文件,并在需要時(shí)使用它,Python會(huì)在合適的時(shí)候自動(dòng)將其關(guān)閉。6.2文件操作

6.2.1文件的操作實(shí)例6-2使用上下文管理器打開(kāi)“dt1.txt”文件,完整的代碼如下:path="d:\pyfile\dt1.txt"withopen(path,"r")asfn:print()print(fn.closed)程序運(yùn)行結(jié)果:d:\pyfile\dt1.txtTrue對(duì)于上面創(chuàng)建的文件,我們可以使用上下文管理器來(lái)操作它。6.2文件操作

6.2.1文件的操作(三)寫(xiě)入文件內(nèi)容Python提供2個(gè)與文件內(nèi)容寫(xiě)入有關(guān)的方法,具體寫(xiě)入方式如表6-2所示。寫(xiě)入方法含義<fileobj>.write(s)將一個(gè)字符串或字節(jié)流寫(xiě)入文件<fileobj>.writelines(strsequence)將字符串序列對(duì)象寫(xiě)入文件表6-2文件內(nèi)容的寫(xiě)入方式6.2文件操作

6.2.1文件的操作要在打開(kāi)的文件中寫(xiě)入內(nèi)容,首先打開(kāi)文件時(shí)就要選用和寫(xiě)有關(guān)的訪問(wèn)模式,本例我們使用的是可同時(shí)讀寫(xiě)的“W+”模式實(shí)例6-3在上面已經(jīng)創(chuàng)建好的“d:\pyfile\dt1.txt”文件中寫(xiě)入一些放在列表中的文字,并打印輸出這些文字,完整的代碼如下:withopen("d:\pyfile\dt1.txt","w+")asfn:ls=["祖國(guó)","中國(guó)","家鄉(xiāng)","昆明"]fn.writelines(ls)forlineinfn:print(line)

可以看到,程序并沒(méi)有輸出任何文字。但打開(kāi)“d:\pyfile\”目錄下的“dt1.txt”文件,可以看到其中是已經(jīng)寫(xiě)入了以下文字的:

祖國(guó)中國(guó)家鄉(xiāng)昆明

列表ls中的文字已經(jīng)被寫(xiě)入文件,但為何第4和第5行代碼沒(méi)有將這些內(nèi)容打印出來(lái)呢?6.2文件操作

6.2.1文件的操作(四)移動(dòng)讀寫(xiě)指針上面示例的問(wèn)題是因?yàn)槲募?xiě)入內(nèi)容后,當(dāng)前文件讀寫(xiě)指針在寫(xiě)入內(nèi)容的后面,第4和第5行代碼從當(dāng)前指針開(kāi)始向后讀取并打印內(nèi)容,被寫(xiě)入的內(nèi)容卻在讀寫(xiě)指針的前面,所以未能被打印出來(lái)。因此,我們需要學(xué)習(xí)seek方法,其基本語(yǔ)法格式如下:<fileobj>.seek(<offset>[,<whence>])功能:把文件對(duì)象<fileobj>的讀寫(xiě)指針從<whence>處開(kāi)始偏移<offset>個(gè)位置。【參數(shù)解析】offset:從whence參數(shù)位置開(kāi)始的偏移量,也就是代表需要移動(dòng)的字節(jié)數(shù)。可以為正數(shù)、負(fù)數(shù)或零,分別表示從當(dāng)前位置向后移動(dòng)、向前移動(dòng)或保持不變。whence:可選,默認(rèn)值為0。給offset參數(shù)一個(gè)定位,表示要從哪個(gè)位置開(kāi)始偏移:0代表文件開(kāi)頭;1代表當(dāng)前位置;2代表文件結(jié)尾。6.2文件操作

6.2.1文件的操作在上例中,我們?cè)趯?xiě)入文件后增加一條代碼fn.seek(0)將文件讀寫(xiě)指針?lè)祷氐轿募_(kāi)始,就可正確輸出寫(xiě)入的內(nèi)容了。實(shí)例6-4使用seek命令移動(dòng)文件指針到文件開(kāi)頭的位置,完整的代碼如下:withopen("d:\pyfile\dt1.txt","w+")asfn:ls=["祖國(guó)","中國(guó)","家鄉(xiāng)","昆明"]fn.writelines(ls)fn.seek(0)forlineinfn:print(line)程序運(yùn)行結(jié)果:祖國(guó)中國(guó)家鄉(xiāng)昆明

6.2文件操作

6.2.1文件的操作讀者們發(fā)現(xiàn)writelines方法只是將列表內(nèi)容直接排列寫(xiě)入,并沒(méi)有將每個(gè)元素分隔開(kāi)寫(xiě)入文件。如何實(shí)現(xiàn)每個(gè)元素分開(kāi)或換行寫(xiě)入呢?大家還記得轉(zhuǎn)義字符“\t”和“\n”的作用嗎?我們將在下面的例題里使用轉(zhuǎn)義字符來(lái)解決該問(wèn)題。實(shí)例6-5加入分隔符和換行符,使每個(gè)元素分開(kāi)或分行寫(xiě)入,完整的代碼如下:withopen("d:\pyfile\dt1.txt","w+")asfn:ls=["祖國(guó)\t","中國(guó)\n","家鄉(xiāng)\t","昆明\n"]fn.writelines(ls)fn.seek(0)forlineinfn:print(line)程序運(yùn)行結(jié)果:祖國(guó)

中國(guó)家鄉(xiāng)

昆明

6.2文件操作

6.2.1文件的操作(五)讀取文件內(nèi)容Python提供了3個(gè)常用的文件內(nèi)容讀取方法,具體讀取方式如表6-3所示。讀取方法含義<fileobj>.read(size)從文件中讀出整個(gè)文件內(nèi)容,如果給出參數(shù),讀出前size長(zhǎng)度的字符串或字節(jié)流<fileobj>.readline(size)從文件中讀出一行內(nèi)容,如果給出參數(shù),讀出該行前size長(zhǎng)度的字符串或字節(jié)流<fileobj>.readlines(size)從文件中讀出所有行,以每行為元素形成一個(gè)列表,如果給出參數(shù),讀出前size行表6-3文件內(nèi)容的讀取方法6.2文件操作

6.2.1文件的操作要對(duì)打開(kāi)的文件進(jìn)行讀取操作,在打開(kāi)文件時(shí)我們要注意兩個(gè)問(wèn)題:首先,我們要選用和讀有關(guān)的訪問(wèn)模式;其次,我們要注意文件的存儲(chǔ)類型是文本文件還是二進(jìn)制文件。當(dāng)是文本文件時(shí),就要注意文件的編碼方式,默認(rèn)是采用當(dāng)前計(jì)算機(jī)使用的編碼,按照字符串方式讀取文件內(nèi)容,如果是其他編碼方式,在打開(kāi)時(shí)就要選擇相應(yīng)的編碼方式(通過(guò)open函數(shù)中的encoding參數(shù)指明),否則輸出的數(shù)據(jù)將會(huì)是亂碼;當(dāng)是二進(jìn)制文件時(shí),就要以二進(jìn)制文件方式打開(kāi)(訪問(wèn)模式是“b”),按照字節(jié)流方式讀取文件內(nèi)容。本節(jié)都是以文本文件為例,二進(jìn)制文件的讀取將作為章節(jié)實(shí)訓(xùn)題請(qǐng)同學(xué)們自行實(shí)現(xiàn)。6.2文件操作

6.2.1文件的操作實(shí)例6-6用戶輸入文件路徑,以文本文件方式將文件打開(kāi),分別以read、readline和readlines方法讀出文件內(nèi)容并打印,完整的代碼如下:fname=input("請(qǐng)輸入要打開(kāi)的文件:")withopen(fname,"r")asfn:str=fn.read()print(str)fn.seek(0)line1=fn.readline()print(line1)fn.seek(0)line2=fn.readlines()print(line2)程序運(yùn)行結(jié)果:請(qǐng)輸入要打開(kāi)的文件:d:\pyfile\dt1.txt祖國(guó)

中國(guó)家鄉(xiāng)

昆明

祖國(guó)

中國(guó)

[’祖國(guó)\t中國(guó)\n’,’家鄉(xiāng)\t昆明\n’]請(qǐng)讀者自行分析理解運(yùn)行結(jié)果。6.2文件操作

6.2.2CSV文件的操作CSV是逗號(hào)分隔值(Comma-SeparatedValues)的簡(jiǎn)稱,也稱為字符分隔值,因?yàn)榉指魯?shù)據(jù)的字符不僅可以是逗號(hào),也可以是制表符、空格等其他字符。以CSV格式存儲(chǔ)的文件稱為CSV文件,采用csv為擴(kuò)展名,是一種常見(jiàn)的用于存儲(chǔ)表格數(shù)據(jù)的純文本文件。由于CSV是一種通用的、相對(duì)簡(jiǎn)單的文件格式,被廣泛用于各種數(shù)據(jù)處理和分析場(chǎng)景中。Python的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)中都有操作CSV文件的命令,本節(jié)只介紹標(biāo)準(zhǔn)庫(kù)csv中的常用命令。6.2文件操作

6.2.2CSV文件的操作(一)創(chuàng)建或打開(kāi)CSV文件在Python中創(chuàng)建或打開(kāi)csv文件的方法有很多,這里我們就使用6.1節(jié)里介紹過(guò)的創(chuàng)建文件的open函數(shù)就可以了。實(shí)例6-7在“d:\pyfile\”目錄下創(chuàng)建一個(gè)名為“dt2.csv”的文件,代碼如下:cf=open("d:\pyfile\dt2.csv","w",newline="")

程序運(yùn)行結(jié)果是在“d:\pyfile\”文件夾下創(chuàng)建了一個(gè)空的新文件“dt2.csv”。在open函數(shù)中出現(xiàn)了新的參數(shù)“newline=""”,這是為了避免在csv文件寫(xiě)入內(nèi)容時(shí)每行后面產(chǎn)生不必要的空行。6.2文件操作

6.2.2CSV文件的操作(二)數(shù)據(jù)寫(xiě)入CSV文件創(chuàng)建了csv文件后,就可以用csv標(biāo)準(zhǔn)庫(kù)中的writer函數(shù)在該文件中寫(xiě)入內(nèi)容,其基本語(yǔ)法格式如下:<writerobj>=csv.writer(<fileobj>)功能:在打開(kāi)的csv文件對(duì)象<fileobj>中寫(xiě)入數(shù)據(jù),返回一個(gè)writer對(duì)象<writerobj>。writer函數(shù)提供了writerow方法和writerows方法,可以用來(lái)在打開(kāi)的文件中寫(xiě)入用逗號(hào)分隔的數(shù)據(jù)。具體寫(xiě)入方式如表6-4所示。6.2文件操作

6.2.2CSV文件的操作寫(xiě)入方法含義<writerobj>.writerow(iterable)一行一行寫(xiě)入<writerobj>.writerows(iterableofiterables)一次寫(xiě)入多行表6-4csv文件內(nèi)容的寫(xiě)入方式下面我們就使用write函數(shù)的兩種寫(xiě)入方法在剛才創(chuàng)建好的dt2.csv文件中寫(xiě)入內(nèi)容6.2文件操作

6.2.2CSV文件的操作實(shí)例6-8使用csv.writer函數(shù)中的兩種寫(xiě)入方法在“d:\pyfile\dt2.csv”文件中分別寫(xiě)入以下內(nèi)容:20241001,張三,男,2020241002,李四,女,1920242001,王五,男,1920242002,趙六,女,2020242003,楊七,女,18完整的代碼如下:importcsvwithopen("d:\pyfile\dt2.csv","w",newline="")ascf:wr=csv.writer(cf)wr.writerow(["20241001","張三","男",20])wr.writerow(["20241002","李四","女",19])wlist=[["20242001","王五","男",19],\["20242002","趙六","女",20],\["20242003","楊七","女",18]]wr.writerows(wlist)6.2文件操作

6.2.2CSV文件的操作我們用記事本打開(kāi)“d:\pyfile\dt2.csv”,就可以看到文件和文件中的內(nèi)容已經(jīng)存在了。如圖6-1所示。

通過(guò)這個(gè)例子,我們看到在csv文件中寫(xiě)入數(shù)據(jù),可以一行一行的寫(xiě)(例如程序中的第4行、第5行),也可以以序列的形式(該程序是列表)一次性寫(xiě)入(例如程序中的第6行、第7行)文件。圖6-1寫(xiě)入內(nèi)容的dt2.csv文件6.2文件操作

6.2.2CSV文件的操作(三)從CSV文件讀取數(shù)據(jù)讀取CSV文件中的內(nèi)容是使用csv.reader函數(shù),其基本語(yǔ)法格式如下:<readerobj>=csv.reader(<fileobj>)功能:在已打開(kāi)的文件對(duì)象<fileobj>中讀出數(shù)據(jù),返回一個(gè)<readerobj>對(duì)象。6.2文件操作

6.2.2CSV文件的操作程序運(yùn)行結(jié)果如圖6-2所示:實(shí)例6-9讀取“d:\pyfile\dt2.csv”文件中的內(nèi)容,并打印出來(lái),完整的代碼如下:importcsvwithopen("d:\pyfile\dt2.csv","r",newline="")ascf:rd=csv.reader(cf)forrowinrd:

print(row)圖6-2實(shí)例6-9程序運(yùn)行結(jié)果6.3Python文件夾的操作文件夾是管理文件的一種方式,將有關(guān)聯(lián)的多個(gè)文件放置在一個(gè)文件夾中,可以方便以后對(duì)文件進(jìn)行查找、復(fù)制、刪除等各種管理操作。在Python中對(duì)文件夾操作的庫(kù)主要是OS標(biāo)準(zhǔn)庫(kù),該庫(kù)中有完成文件夾的創(chuàng)建、進(jìn)入(改變)、刪除等基本操作的方法。首先我們需要先導(dǎo)入OS標(biāo)準(zhǔn)庫(kù),然后再運(yùn)行其他代碼,代碼如下:importos6.3Python文件夾的操作

6.3.1創(chuàng)建文件夾創(chuàng)建單個(gè)文件夾的命令是mkdir()方法,其基本語(yǔ)法格式如下:os.mkdir(<foldername>)功能:創(chuàng)建一個(gè)文件夾,名為參數(shù)<foldername>指明的名稱。實(shí)例6-10在D盤(pán)下創(chuàng)建一個(gè)名為“folder1”的文件夾,完整的代碼如下:importosos.mkdir('d:\\folder1')要查看文件夾是否創(chuàng)建成功可以有多種方法:1、打開(kāi)電腦的D盤(pán)查看是否出現(xiàn)“folder1”文件夾;2、使用下面6.3.2節(jié)將學(xué)習(xí)到的“判斷文件夾是否存在”的命令;3、使用下面6.3.5節(jié)將學(xué)習(xí)到的“獲取文件或文件夾名稱列表”的命令。注意:如果你創(chuàng)建的文件夾已經(jīng)存在,重復(fù)創(chuàng)建就會(huì)報(bào)錯(cuò)(即上述創(chuàng)建文件夾的代碼如果成功執(zhí)行,再次運(yùn)行就會(huì)報(bào)錯(cuò))。因此在創(chuàng)建文件夾時(shí),我們最好先判斷在該目錄下是否存在同名的文件夾。6.3Python文件夾的操作

6.3.2判斷文件夾是否存在判斷文件夾是否存在的命令是path.isdir()方法,其基本語(yǔ)法格式如下:os.path.isdir(<foldername>)功能:判斷名為<foldername>的文件夾是否存在。實(shí)例6-11要判斷剛才創(chuàng)建的文件夾是否存在,完整的代碼如下:importosprint(os.path.isdir('d:\\folder1'))程序運(yùn)行結(jié)果:True

該文件夾名存在,說(shuō)明剛才的創(chuàng)建是成功的。6.3Python文件夾的操作

6.3.3重命名文件夾如果我們想要更改文件夾的名字,可以使用重命名文件夾的命令rename(),其基本語(yǔ)法格式如下:os.rename(<old_foldername>,<new_foldername>)功能:把舊名稱為<old_foldername>的文件夾改名為新文件夾名<new_foldername>實(shí)例6-12把剛才創(chuàng)建的文件夾重命名為“folder2”,并判斷文件夾改名是否成功,完整的代碼如下:importosos.rename('d:\\folder1','d:\\folder2')print(os.path.isdir('d:\\folder1'))print(os.path.isdir('d:\\folder2'))程序運(yùn)行結(jié)果:FalseTrue原文件夾名已經(jīng)不存在了,新文件夾名存在,說(shuō)明該文件夾改名成功。6.3Python文件夾的操作

6.3.4改變文件夾如果我們想進(jìn)入某文件夾中進(jìn)行下一步的操作(如創(chuàng)建子文件夾、讀取文件等),我們可以使用chdir()命令,該命令使某文件夾成為當(dāng)前文件夾(其后的操作就可以使用相對(duì)路徑,這樣能簡(jiǎn)化后續(xù)代碼),其基本語(yǔ)法格式如下:os.chdir(<foldername>)功能:使文件夾名為<foldername>中定義的文件夾成為當(dāng)前文件夾6.3Python文件夾的操作

6.3.4改變文件夾在當(dāng)前文件夾下創(chuàng)建的子文件夾存在,指定路徑的同名子文件夾也存在,說(shuō)明當(dāng)前文件夾就是指定的文件夾,即剛才的文件夾改變已成功。實(shí)例6-13把文件夾“folder2”成為當(dāng)前文件夾,并在其中創(chuàng)建一個(gè)名為“subfolder”的子文件夾,并判斷是否創(chuàng)建成功,完整的代碼如下:importosos.chdir('d:\\folder2')os.mkdir('subfolder')

#相對(duì)路徑,在當(dāng)前文件夾中創(chuàng)建新文件夾print(os.path.isdir('subfolder'))#用相對(duì)路徑判斷print(os.path.isdir('d:\\folder2\subfolder'))#用絕對(duì)路徑判斷程序運(yùn)行結(jié)果:TrueTrue6.3Python文件夾的操作

6.3.5獲取文件及文件夾名稱列表如果想查看某路徑下已經(jīng)存在的文件或文件夾有哪些,可以使用listdir()命令,其基本語(yǔ)法格式如下:os.listdir([<folder_path>])功能:返回指定的路徑<folder_path>中包含的文件或文件夾的名稱列表。6.3Python文件夾的操作

6.3.5獲取文件及文件夾名稱列表說(shuō)明在當(dāng)前文件夾“d:\folder2\”下只有剛才創(chuàng)建的子文件夾'subfolder'。實(shí)例6-14查看當(dāng)前文件夾“d:\\folder2”中有哪些文件或文件夾,完整的代碼如下:importosprint(os.listdir('d:\\folder2'))或importosos.chdir('d:\\folder2')print(os.listdir('.'))#查看當(dāng)前路徑中包含的文件及文件夾或importosos.chdir('d:\\folder2')print(os.listdir())#功能同上程序運(yùn)行結(jié)果:['subfolder']6.3Python文件夾的操作

6.3.5獲取文件及文件夾名稱列表如果要查看當(dāng)前文件夾“d:\folder2\”的上級(jí)文件夾中包含的文件及文件夾名稱,要輸入以下代碼:實(shí)例6-15查看當(dāng)前文件夾“d:\folder2\”的上級(jí)文件夾中有哪些文件或文件夾,完整的代碼如下:importosos.chdir('d:\\folder2')print(os.listdir('..'

溫馨提示

  • 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)論