Python?文件處理之open()函數(shù)
前言:
文件處理是任何 Web 應(yīng)用程序的重要組成部分。
Python 有幾個(gè)用于創(chuàng)建、讀取、更新和刪除文件的函數(shù)。
1.文件處理
在 Python
中使用文件的關(guān)鍵函數(shù)是 open()
函數(shù)。
有四種打開文件的不同方法(模式):
- "r" - 讀取 - 默認(rèn)值。打開文件進(jìn)行讀取,如果文件不存在則報(bào)錯(cuò)。
- "a" - 追加 - 打開供追加的文件,如果不存在則創(chuàng)建該文件。
- "w" - 寫入 - 打開文件進(jìn)行寫入,如果文件不存在則創(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ù) 語法格式:
f=open("a.txt","r") #以只讀的方式打開a.txt文件,并創(chuàng)建一個(gè)文件對象f。
這里的f等于以只讀的方式打開的a.txt文件
read()函數(shù) 括號里可以輸入想讀取文件字符的數(shù)量,括號里沒有參數(shù)則默認(rèn)讀取該文件全部內(nèi)容
print(f.read()) ? ?#讀取文件全部內(nèi)容 print(f.read(6)) ? ?#讀取文件前6個(gè)字符
readline()函數(shù) 讀取一行文件的內(nèi)容:
print(f.readline()) ? ?#讀取第一行內(nèi)容 ? #若只想讀取前兩行內(nèi)容,則可以這樣寫: print(f.readline()) print(f.readline())? ? ? """依次讀取一行內(nèi)容,已經(jīng)讀取的內(nèi)容不會重復(fù)讀取,所以寫兩遍就可以讀取兩行內(nèi)容。"""
close()函數(shù) 關(guān)閉文件:
既然有open()打開文件,那就有close()關(guān)閉文件
把緩沖區(qū)的內(nèi)容寫入文件,同時(shí)關(guān)閉文件,釋放文件對象相關(guān)資源
打開了文件后,完成對文件的編輯和使用就close關(guān)閉文件
#close()函數(shù)使用方法: ? f=open("a.txt","r") ? ? #打開文件 print(f.read(5)) ? ? ? ?#讀取前五個(gè)字符 print(f.readline()) ? ? #然后再讀取一行字符 f.close() ? ? ? ? ? ?#完成對文件的使用后關(guān)閉文件
2.Python 文件寫入
寫入已有文件:
如需寫入已有的文件,必須向 open() 函數(shù)添加參數(shù):
- "a" - 追加 - 會追加到文件的末尾
- "w" - 寫入 - 會覆蓋任何已有的內(nèi)容
打開文件 "a.txt
" 并將內(nèi)容追加到文件中
f=open("a.txt","a") ? ?#以"a"追加寫入的方式打開文件 f.write("Hello python!") ? #以"a"的方式打開的文件寫入內(nèi)容時(shí),會將內(nèi)容追加在之前內(nèi)容的末尾。 f.close() ? ? #將緩沖區(qū)的內(nèi)容寫入到文件中,寫完內(nèi)容后關(guān)閉文件。 ? """每次運(yùn)行都會在文件末尾追加Hello python,運(yùn)行三次后,就會有三句Hello python"""
打開文件 "a.txt
" 并覆蓋內(nèi)容
f=open("a.txt","w") ? ? ?#以"w"寫入的方式打開a.txt文件 f.write("Hello python!") ? ?
以"w"方式打開的文件,每次寫入內(nèi)容都會覆蓋之前的內(nèi)容。所以不管運(yùn)行多少次,文件里只有Hello python
!f.close()
把緩沖區(qū)的內(nèi)容寫入文件,并關(guān)閉文件。釋放文件對象的相關(guān)資源。
每次寫入完內(nèi)容后建議關(guān)閉一下文件,因?yàn)槲募灰欢〞ⅠR保存進(jìn)文件,而是存在緩沖區(qū)。
使用close()
函數(shù)關(guān)閉文件時(shí),會將緩沖區(qū)的內(nèi)容寫入文件。
注意:"w"方法會覆蓋全部內(nèi)容。
3.創(chuàng)建新文件
如果需要在python中創(chuàng)建新文件,則使用open()方法,并使用以下方法:
- "x" 創(chuàng)建 -將創(chuàng)建一個(gè)文件,如果文件存在則返回錯(cuò)誤
- "a" 追加 -如果指定文件不存在,將創(chuàng)建一個(gè)文件
- "w" 寫入 -如果指定的文件不存在,將創(chuàng)建一個(gè)文件
實(shí)例:
創(chuàng)建名為"b.txt"的文件:
f=open("b.txt","x") ? ? ? #創(chuàng)建并打開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è)文件夾,請使用 os.rmdir() 方法:
import os? os rmdir("b.txt") ? ? # 刪除整個(gè)文件夾
注意:只能刪除空文件夾
到此這篇關(guān)于Python 文件處理之open()
函數(shù)的文章就介紹到這了,更多相關(guān)Python open()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Django框架中的數(shù)據(jù)庫配置指南
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)庫配置指南,文中舉了Python內(nèi)置的SQLite的示例,需要的朋友可以參考下2015-07-07Python?NumPy教程之?dāng)?shù)據(jù)類型對象詳解
每個(gè)?ndarray?都有一個(gè)關(guān)聯(lián)的數(shù)據(jù)類型?(dtype)?對象。這個(gè)數(shù)據(jù)類型對象(dtype)告訴我們數(shù)組的布局。本文將通過示例詳細(xì)講講NumPy的數(shù)據(jù)類型對象,需要的可以參考一下2022-08-08回歸預(yù)測分析python數(shù)據(jù)化運(yùn)營線性回歸總結(jié)
本文主要介紹了python數(shù)據(jù)化運(yùn)營中的線性回歸一般應(yīng)用場景,常用方法,回歸實(shí)現(xiàn),回歸評估指標(biāo),效果可視化等,并采用了回歸預(yù)測分析的數(shù)據(jù)預(yù)測方法2021-08-08