1.文件操作介紹
文件的作用
大家應(yīng)該聽(tīng)說(shuō)過(guò)一句話:“好記性不如爛筆頭”篷扩。
不僅人的大腦會(huì)遺忘事情耘戚,計(jì)算機(jī)也會(huì)如此祷舀,比如一個(gè)程序在運(yùn)行過(guò)程中用了九牛二虎之力終于計(jì)算出了結(jié)果秩仆,試想一下如果不把這些數(shù)據(jù)存放起來(lái)码泛,相比重啟電腦之后,“哭都沒(méi)地方哭了”
可見(jiàn)澄耍,在把數(shù)據(jù)存儲(chǔ)起來(lái)有做么大的價(jià)值
使用文件的目的:
就是把一些存儲(chǔ)存放起來(lái)噪珊,可以讓程序下一次執(zhí)行的時(shí)候直接使用,而不必重新制作一份齐莲,省時(shí)省力
2.文件的打開(kāi)與關(guān)閉
想一想:
如果想用word編寫(xiě)一份簡(jiǎn)歷痢站,應(yīng)該有哪些流程呢?
1.打開(kāi)word軟件选酗,新建一個(gè)word文件
2.寫(xiě)入個(gè)人簡(jiǎn)歷信息
3.保存文件
4.關(guān)閉word軟件
同樣阵难,在操作文件的整體過(guò)程與使用word編寫(xiě)一份簡(jiǎn)歷的過(guò)程是很相似的
1.打開(kāi)文件,或者新建立一個(gè)文件
2.讀/寫(xiě)數(shù)據(jù)
3.關(guān)閉文件
2.1打開(kāi)文件
在python星掰,使用open函數(shù)多望,可以打開(kāi)一個(gè)已經(jīng)存在的文件,或者創(chuàng)建一個(gè)新文件
open(文件名氢烘,訪問(wèn)模式)
示例如下:
f = open('test.txt','w')
2.2關(guān)閉文件
close()
示列如下:
#新建一個(gè)文件怀偷,文件名為:test.txt
f = open('test.txt','w')
#關(guān)閉這個(gè)文件
f.close()
2.3路徑
2.3.1linux
2.3.2windows
3文件的讀寫(xiě)
3.1寫(xiě)數(shù)據(jù)(write)
使用write()可以完成向文件寫(xiě)入數(shù)據(jù)
demo:
f = open('test.txt','w')
f.write('hello?world, i am here!')
f.close()
注意:
·如果文件不存在那么創(chuàng)建,如果存在那么就先清空播玖,然后寫(xiě)入數(shù)據(jù)
3.2 讀數(shù)據(jù)(read)
使用read(num)可以從文件中讀取數(shù)據(jù)椎工,num表示要從文件中讀取的數(shù)據(jù)的長(zhǎng)度(單位是字節(jié)),如果沒(méi)有傳入num蜀踏,那么就表示讀取文件中所有的數(shù)據(jù)
demo:
f = open('test.txt','r')
content ?=?f.read(5)
print(content)
print("-"*30)
content =f.read()
print(content)
f.close()
注意:
·如果open是打開(kāi)一個(gè)文件维蒙,那么可以不用謝打開(kāi)的模式,即只寫(xiě)open('test.txt')
·如果使用讀了多次果覆,那么后面讀取的數(shù)據(jù)是從上次讀完后的位置開(kāi)始的
3.3讀數(shù)據(jù)(readlines)
就像read沒(méi)有參數(shù)時(shí)一樣颅痊,readlines可以按照行的方式把整個(gè)文件中的內(nèi)容進(jìn)行一次性讀取,并且返回的是一個(gè)列表局待,其中每一行的數(shù)據(jù)為一個(gè)元素
f = open('test.txt','r')
content =f.readlines()
print(type(content))
i=1
for temp in content:
? ? ? ? ?print("%d:%s"%(i,temp))
? ? ? ? ?i+=1
f.close()
3.4讀數(shù)據(jù)(readline)
f = open('test.txt','r')
content =f.readline()
print("1:%s"%content)
content =f.readline()
print("2:%s"%content)
f.close()
4 應(yīng)用1:制作文件的備份
任務(wù)描述:
輸入文件的名字斑响,然后程序自動(dòng)完成對(duì)文件進(jìn)行備份
參考代碼:
5.文件的隨機(jī)讀寫(xiě)
在讀寫(xiě)文件的過(guò)程中菱属,如果想知道當(dāng)前的位置,可以使用tell()來(lái)獲取
從0開(kāi)始到字符的個(gè)數(shù)
5.21.1.1定位到某個(gè)位置
如果在讀寫(xiě)文件的過(guò)程中舰罚,需要從另外一個(gè)位置進(jìn)行操作的話纽门,可以使用seek()
seek(offset, from)有2個(gè)參數(shù)
1.offset:偏移量
2.from:方向
a)0:表示文件開(kāi)頭(python3)
b)1:表示當(dāng)前位置(python2)
c)2:表示文件末尾(python2)
demo:把位置設(shè)置為:從文件開(kāi)頭,偏移5個(gè)字節(jié)
demo:把位置設(shè)置為:離文件末尾营罢,3字節(jié)處
6文件的重命名赏陵、刪除
有些時(shí)候,需要對(duì)文件進(jìn)行重命名饲漾、刪除等一些操作蝙搔,python的os模塊中都有這么功能
6.1文件重命名
os模塊中的rename()可以完成對(duì)文件的重命名操作
rename(需要修改的文件名,新的文件名)
6.2刪除文件
os模塊中的remove()可以完成對(duì)文件的刪除操作
remove(待刪除的文件名)
7文件夾的相關(guān)操作
實(shí)際開(kāi)發(fā)中,有時(shí)需要用程序的方式對(duì)文件夾進(jìn)行一定的操作能颁,比如創(chuàng)建杂瘸、刪除等
就像對(duì)文件操作需要os模塊一樣,如果要操作文件夾伙菊,同樣需要os模塊
7.1創(chuàng)建文件夾
7.2獲取當(dāng)前目錄
7.3改變默認(rèn)目錄
7.4獲取目錄列表
7.5刪除文件夾
81.1應(yīng)用2:批量修改文件名
?