關(guān)于Python的各種文件操作
本文概要
本篇文章主要介紹Python的各種文件操作,適合剛?cè)腴T的小白或者對于文件操作基礎(chǔ)不太牢固的同學(xué),文中描述和代碼示例很詳細(xì),看完即可掌握,感興趣的小伙伴快來一起學(xué)習(xí)吧。
一.文件的路徑介紹
1.絕對路徑
首先,絕對路徑講的就是一個文件的絕對位置(相當(dāng)于包含了所有的目錄信息),所有層級關(guān)系是一目了然的。例如:C:/Users/86134/Desktop/python(這是我電腦上Python項目文件夾的絕對路徑),可以看到,它是在C盤–Users文件夾–86134文件夾–Desktop文件夾下的一個文件夾,這就是絕對路徑反饋給我們的所有信息。
2.相對路徑
有些時候,文件夾太多了,想偷偷懶??,我們把需要操作的文件放在同一個目錄下,這樣通過解釋器就可以直接在同級目錄下找到這個文件(絕對路徑就是從當(dāng)前文件所在的文件夾開始的路徑。),同樣的,上面的路徑,新建一個文件:123.txt。
它的絕對路徑:C:/Users/86134/Desktop/python/123.txt 但是,它是在Python工程文件目錄下的,可以直接這樣寫:相對路徑:./123.txt( ./ 表示的是當(dāng)前文件夾,可以省略) 是不是很驚喜,可以這樣簡潔,哇,真的很方便?。?!?????? 另外強(qiáng)調(diào)一點其他的:
路徑 | 路徑解釋 | 使用方法 |
…/123.tx | 是指從當(dāng)前文件夾的上一級文件夾里查找 123.txt 文件 | …/ 表示的是上一級文件夾 |
二.文件的訪問模式
1.文本模式
文本模式 | 使用說明 |
“r”/“rt” | 只讀,只能調(diào)用讀函數(shù),文件必須存在,否則失敗,文件指針指向頭字節(jié)。 |
“r+” | 可讀可寫讀,讀寫函數(shù)都能調(diào)用,文件必須存在,否則失敗,文件指針指向頭字節(jié)。 |
“w”/“wt” | 擦除寫,只能調(diào)用寫函數(shù),文件不存在時創(chuàng)建文件,文件指針指向頭字節(jié)。 |
“w+” | 可讀可寫,讀寫函數(shù)都能調(diào)用,文件不存在時創(chuàng)建文件,文件指針指向頭字節(jié)。 |
“a”/“at” | 附加寫,只能調(diào)用寫函數(shù),文件不存在時創(chuàng)建文件,文件指針指向尾字節(jié)。 |
“a+” | 可讀可寫,讀寫函數(shù)都能調(diào)用,文件不存在時創(chuàng)建文件,文件指針指向尾字節(jié)。 |
2.二進(jìn)制模式
二進(jìn)制模式 | 使用說明 |
“rb” | 只讀,只能調(diào)用讀函數(shù),文件必須存在,否則失敗,文件指針指向頭字節(jié)。 |
“rb+” | 可讀可寫讀,讀寫函數(shù)都能調(diào)用,文件必須存在,否則失敗,文件指針指向頭字節(jié)。 |
“wb” | 擦除寫,只能調(diào)用寫函數(shù),文件不存在時創(chuàng)建文件,文件指針指向頭字節(jié)。 |
“wb+” | 可讀可寫,讀寫函數(shù)都能調(diào)用,文件不存在時創(chuàng)建文件,文件指針指向頭字節(jié)。 |
“ab” | 附加寫,只能調(diào)用寫函數(shù),文件不存在時創(chuàng)建文件,文件指針指向尾字節(jié)。 |
“ab+” | 可讀可寫,讀寫函數(shù)都能調(diào)用,文件不存在時創(chuàng)建文件,文件指針指向尾字節(jié)。 |
文件的打開和關(guān)閉
在Python中,使用open(file, mode=‘r’, buffering=None, encoding=None)方法打開文件; 在Python中,使用close()方法關(guān)閉文件。
三.文件的讀取和寫入
1.讀文件
好了,通過前面基礎(chǔ)知識的鋪墊,終于要開始動手實踐了,還記得那個123.txt的文本文件嗎?我們寫入一條字符串:I love you,對,沒錯,我愛你,下面,我們來讓解釋器讀取這個內(nèi)容。
①使用read()函數(shù)
使用read(path,mode)函數(shù), 讀取文件內(nèi)容,可以指定讀取長度。默認(rèn)全部讀取。
f = open('./123.txt', 'r') #默認(rèn)全部讀取 con = f.read() print(con)
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py I love you
②使用readline()函數(shù)
使用readline(path,mode)函數(shù),可以簡單理解,一行一行讀取,遇到換行結(jié)束(123.txt再加入一句話換行寫:My friend)。 第一次讀?。?/strong>
f = open('./123.txt', 'r') #讀取一行 con = f.readline() print(con)
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py I love you 進(jìn)程已結(jié)束,退出代碼0
第二次讀取:
f = open('./123.txt', 'r') con = f.readline() #第二次讀取 c = f.readline() print(c)
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py My friend 進(jìn)程已結(jié)束,退出代碼0
③使用readlines()函數(shù)
使用readlines(path)函數(shù),可以簡單理解,多行讀取,返回一個列表。
f = open('./123.txt', 'r') con = f.readlines() print(con)
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py ['I love you\n', 'My friend'] 進(jìn)程已結(jié)束,退出代碼0
2.寫文件
①使用write()函數(shù)
向文件中寫數(shù)據(jù),我們使用write(path)函數(shù)來完成。
f = open('./123.txt', 'w') #加入數(shù)據(jù) f.write('you')
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py 進(jìn)程已結(jié)束,退出代碼0
效果圖:
突然發(fā)現(xiàn),我們之前的數(shù)據(jù)都沒了,是不是我不愛你了,并不是,還記得文件的訪問模式嗎,知道你肯定忘了,“w”/“wt” 擦除寫,只能調(diào)用寫函數(shù),文件不存在時創(chuàng)建文件,文件指針指向頭字節(jié)。(細(xì)節(jié)看鼠標(biāo))。
四.文件操作(OS模塊的使用)
1.創(chuàng)建文件夾
使用mkdir()函數(shù)
創(chuàng)建文件夾,我們使用mkdir(filename)函數(shù)來完成。
import os #創(chuàng)建示范文件夾 os.mkdir('示范')
效果圖:
2.獲取文件屬性
使用stat()函數(shù)
查看一個文件屬性時,我們使用stat(filename)函數(shù)來完成。
import os #查看123.txt文件屬性 con = os.stat('123.txt') print(con)
效果展示:
E:\Python\python.exe C:\Users\86134\Desktop\python\文件操作.py os.stat_result(st_mode=33206, st_ino=3096224743955345, st_dev=3322609030, st_nlink=1, st_uid=0, st_gid=0, st_size=3, st_atime=1680681268, st_mtime=1680680620, st_ctime=1680621627) 進(jìn)程已結(jié)束,退出代碼0
3.刪除文件
使用remove()函數(shù)
刪除一個文件時,我們使用remove(path)函數(shù)來完成。
import os #刪除一個文件 os.remove('123.txt')
其他常見操作:
函數(shù) | 操作說明 |
os.listdir() | 返回指定目錄下的所有文件和目錄名 |
os.removedirs() | 刪除多個目錄 |
os.path.dirname() | 獲取路徑名 |
os.rename() | 重命名 |
os.mknod() | 文件操作 |
os.chmod() | 修改文件權(quán)限與時間戳 |
… | … |
到此這篇關(guān)于關(guān)于Python的各種文件操作的文章就介紹到這了,更多相關(guān)Python文件操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中protobuf和json互相轉(zhuǎn)換應(yīng)用處理方法
protobuf目前有proto2和proto3兩個版本,本文所介紹的是基于proto3,在Python 3.6.9環(huán)境下運行,本文記錄一下python中protobuf和json的相互轉(zhuǎn)換的處理方法,感興趣的朋友跟隨小編一起看看吧2022-12-12python中將一個全部為int的list 轉(zhuǎn)化為str的list方法
下面小編就為大家分享一篇python中將一個全部為int的list 轉(zhuǎn)化為str的list方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04