Python?文件處理之open()函數(shù)
前言:
文件處理是任何 Web 應(yīng)用程序的重要組成部分。
Python 有幾個(gè)用于創(chuàng)建、讀取、更新和刪除文件的函數(shù)。
1.文件處理
在 Python 中使用文件的關(guān)鍵函數(shù)是 open() 函數(shù)。
有四種打開(kāi)文件的不同方法(模式):
- "r" - 讀取 - 默認(rèn)值。打開(kāi)文件進(jìn)行讀取,如果文件不存在則報(bào)錯(cuò)。
- "a" - 追加 - 打開(kāi)供追加的文件,如果不存在則創(chuàng)建該文件。
- "w" - 寫(xiě)入 - 打開(kāi)文件進(jìn)行寫(xiě)入,如果文件不存在則創(chuàng)建該文件。
- "x" - 創(chuàng)建 - 創(chuàng)建指定的文件,如果文件存在則返回錯(cuò)誤。
此外,您可以指定文件是應(yīng)該作為二進(jìn)制還是文本模式進(jìn)行處理。
- "t" - 文本 - 默認(rèn)值。文本模式。
- "b" - 二進(jìn)制 - 二進(jìn)制模式(例如圖像)。
open() 函數(shù)有兩個(gè)參數(shù):文件名和模式。
open()函數(shù) 語(yǔ)法格式:
f=open("a.txt","r") #以只讀的方式打開(kāi)a.txt文件,并創(chuàng)建一個(gè)文件對(duì)象f。
這里的f等于以只讀的方式打開(kāi)的a.txt文件
read()函數(shù) 括號(hào)里可以輸入想讀取文件字符的數(shù)量,括號(hào)里沒(méi)有參數(shù)則默認(rèn)讀取該文件全部?jī)?nèi)容
print(f.read()) ? ?#讀取文件全部?jī)?nèi)容 print(f.read(6)) ? ?#讀取文件前6個(gè)字符
readline()函數(shù) 讀取一行文件的內(nèi)容:
print(f.readline()) ? ?#讀取第一行內(nèi)容 ? #若只想讀取前兩行內(nèi)容,則可以這樣寫(xiě): print(f.readline()) print(f.readline())? ? ? """依次讀取一行內(nèi)容,已經(jīng)讀取的內(nèi)容不會(huì)重復(fù)讀取,所以寫(xiě)兩遍就可以讀取兩行內(nèi)容。"""
close()函數(shù) 關(guān)閉文件:
既然有open()打開(kāi)文件,那就有close()關(guān)閉文件
把緩沖區(qū)的內(nèi)容寫(xiě)入文件,同時(shí)關(guān)閉文件,釋放文件對(duì)象相關(guān)資源
打開(kāi)了文件后,完成對(duì)文件的編輯和使用就close關(guān)閉文件
#close()函數(shù)使用方法:
?
f=open("a.txt","r") ? ? #打開(kāi)文件
print(f.read(5)) ? ? ? ?#讀取前五個(gè)字符
print(f.readline()) ? ? #然后再讀取一行字符
f.close() ? ? ? ? ? ?#完成對(duì)文件的使用后關(guān)閉文件2.Python 文件寫(xiě)入
寫(xiě)入已有文件:
如需寫(xiě)入已有的文件,必須向 open() 函數(shù)添加參數(shù):
- "a" - 追加 - 會(huì)追加到文件的末尾
- "w" - 寫(xiě)入 - 會(huì)覆蓋任何已有的內(nèi)容
打開(kāi)文件 "a.txt" 并將內(nèi)容追加到文件中
f=open("a.txt","a") ? ?#以"a"追加寫(xiě)入的方式打開(kāi)文件
f.write("Hello python!") ? #以"a"的方式打開(kāi)的文件寫(xiě)入內(nèi)容時(shí),會(huì)將內(nèi)容追加在之前內(nèi)容的末尾。
f.close() ? ? #將緩沖區(qū)的內(nèi)容寫(xiě)入到文件中,寫(xiě)完內(nèi)容后關(guān)閉文件。
?
"""每次運(yùn)行都會(huì)在文件末尾追加Hello python,運(yùn)行三次后,就會(huì)有三句Hello python"""打開(kāi)文件 "a.txt" 并覆蓋內(nèi)容
f=open("a.txt","w") ? ? ?#以"w"寫(xiě)入的方式打開(kāi)a.txt文件
f.write("Hello python!") ? ?以"w"方式打開(kāi)的文件,每次寫(xiě)入內(nèi)容都會(huì)覆蓋之前的內(nèi)容。所以不管運(yùn)行多少次,文件里只有Hello python!f.close() 把緩沖區(qū)的內(nèi)容寫(xiě)入文件,并關(guān)閉文件。釋放文件對(duì)象的相關(guān)資源。
每次寫(xiě)入完內(nèi)容后建議關(guān)閉一下文件,因?yàn)槲募灰欢〞?huì)立馬保存進(jìn)文件,而是存在緩沖區(qū)。
使用close() 函數(shù)關(guān)閉文件時(shí),會(huì)將緩沖區(qū)的內(nèi)容寫(xiě)入文件。
注意:"w"方法會(huì)覆蓋全部?jī)?nèi)容。
3.創(chuàng)建新文件
如果需要在python中創(chuàng)建新文件,則使用open()方法,并使用以下方法:
- "x" 創(chuàng)建 -將創(chuàng)建一個(gè)文件,如果文件存在則返回錯(cuò)誤
- "a" 追加 -如果指定文件不存在,將創(chuàng)建一個(gè)文件
- "w" 寫(xiě)入 -如果指定的文件不存在,將創(chuàng)建一個(gè)文件
實(shí)例:
創(chuàng)建名為"b.txt"的文件:
f=open("b.txt","x") ? ? ? #創(chuàng)建并打開(kāi)b.txt文件
?
#如果文件已存在則報(bào)錯(cuò)顯示文件以存在:
?
FileExistsError: [Errno 17] File exists: '海龜編程test1.py'
?
#如果不存在,則創(chuàng)建新文件。4.刪除文件
如果需要?jiǎng)h除文件,必須導(dǎo)入OS模塊,并運(yùn)行其os.remove()函數(shù):
#刪除b.txt文件
import os ? ?#導(dǎo)入os模塊
os.remove("b.txt") ? ? #使用os.remove("文件名") 函數(shù)刪除文件。檢查文件是否存在:
為避免出現(xiàn)錯(cuò)誤,您可能需要在嘗試刪除文件之前檢查該文件是否存在:
實(shí)例
檢查文件是否存在,然后刪除它:
import os
if os.path.exists("d.txt"):
? os.remove("d.txt")
else:
? print("The file does not exist")刪除文件夾
如需刪除整個(gè)文件夾,請(qǐng)使用 os.rmdir() 方法:
import os?
os rmdir("b.txt") ? ? # 刪除整個(gè)文件夾注意:只能刪除空文件夾
到此這篇關(guān)于Python 文件處理之open()函數(shù)的文章就介紹到這了,更多相關(guān)Python open()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python來(lái)編寫(xiě)HTTP服務(wù)器的超級(jí)指南
這篇文章主要介紹了使用Python來(lái)編寫(xiě)HTTP服務(wù)器的超級(jí)指南,同時(shí)介紹了基于Python框架的web服務(wù)器的編寫(xiě)方法,譯文從理論到實(shí)現(xiàn)講得都很生動(dòng)詳細(xì),十分推薦!需要的朋友可以參考下2016-02-02
python+OpenCV人臉識(shí)別考勤系統(tǒng)實(shí)現(xiàn)的詳細(xì)代碼
作為一個(gè)基于人臉識(shí)別算法的考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)教程,以下內(nèi)容將提供詳細(xì)的步驟和代碼示例。本教程將使用 Python 語(yǔ)言和 OpenCV 庫(kù)進(jìn)行實(shí)現(xiàn),需要的朋友可以參考下2023-05-05
python中列表(list)和元組(tuple)的深入講解
這篇文章主要給大家介紹了關(guān)于python中列表(list)和元組(tuple)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
matplotlib繪制餅圖的基本配置(萬(wàn)能模板案例)
餅圖是常見(jiàn)的一種圖表形式,本文主要介紹了matplotlib繪制餅圖的基本配置(萬(wàn)能模板案例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Python用for循環(huán)實(shí)現(xiàn)九九乘法表
本文通過(guò)實(shí)例代碼給大家介紹了Python用for循環(huán)實(shí)現(xiàn)九九乘法表的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05

