淺析使用Python操作文件
1. file=open('xxx.txt', encoding='utf-8'),open()函數(shù)是Python內(nèi)置的用于對文件的讀寫操作,返回的是文件的流對象(而不是文件本身,所以使用的方法都是流對象的方法)。使用這個函數(shù)時推薦指定encoding參數(shù)(Python2.7.x中好像不支持),因為Python代碼在不同的平臺環(huán)境中使用的默認編碼方式不同,有可能會發(fā)生編譯出錯的問題。
2. 在open中的第一個文件名的的參數(shù)中,包含的路徑表示雖然可以根據(jù)不同的環(huán)境使用斜杠和反斜杠,但在Python中表路徑時,斜杠都是正確的。
3. file(流對象,open的默認模式下的返回值)的一些方法,使用for循環(huán)對file進行迭代時,每次迭代都會自動分離出一行(效果相當(dāng)于對readlines結(jié)果的for循環(huán)遍歷):
•file.name:獲取文件的文件名(包含路徑),即傳入open文件名參數(shù);
•file.encoding:獲取文件的編碼方式;
•file.mode:獲取文件的訪問方式,若沒有指定這個參數(shù),open的默認訪問方式為只讀“r”;
•file.closed:返回文件是否關(guān)閉的狀態(tài);
•file.close():關(guān)閉文件(使用完一定及時使用這個函數(shù)關(guān)閉文件);
•file.read():從當(dāng)前定位(一般就是文件開始處)獲取文件內(nèi)容,返回整個文件內(nèi)容的字符串(此時定位在文件尾,若再使用read()方法,會返回空字符串,因為已經(jīng)到文件尾了),若指定了需要獲取的 字符 數(shù)(可以給read方法傳入?yún)?shù),比如:read(3)表示從當(dāng)前定位往后讀取3個字符),則返回指定字符數(shù)的字符串。注意不能從一個字符的中間字節(jié)處讀取,因為有的字符(比如中文)的表示不止一個字節(jié),而定位是以字節(jié)來計算位置的,read()是以字符來計數(shù)的;
•file.seek(n):使定位到特定 字節(jié) 處(若使用read()方法讀完文件后還想再讀取一次文件,可以使用seek(0)重新定位到文件開始處再讀?。?
•file.tell():返回當(dāng)前定位的字節(jié)位置;
•file.readline():讀取文件中的一行,并定位到下一行的開始處;
•file.readlines():讀取文件中的所有行,返回所有行為元素組成的列表;
4. 使用open進行文件操作使建議使用with創(chuàng)建運行環(huán)境,可以不用close()方法關(guān)閉文件,無論在文件使用中遇到什么問題都能安全的退出,即使發(fā)生錯誤,退出運行時環(huán)境時也能安全退出文件并給出報錯信息。
# 使用with創(chuàng)建運行時環(huán)境
with open('xxx.text', encoding='utf-8') as file:
file_content = file.read()
file.seek(0)
file_ten_characters = file.read(10)
print(file_content)
print(file_ten_characters) #執(zhí)行完with中的代碼后自動退出運行時環(huán)境
相關(guān)文章
pyenv與virtualenv安裝實現(xiàn)python多版本多項目管理
這篇文章主要介紹了pyenv與virtualenv安裝實現(xiàn)python多版本多項目管理過程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
python基本算法之實現(xiàn)歸并排序(Merge sort)
這篇文章主要給大家介紹了關(guān)于python基本算法之實現(xiàn)歸并排序(Merge sort)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級隊列queue用法詳解
queue庫提供了一個適用于多線程編程的先進先出(FIFO)數(shù)據(jù)結(jié)構(gòu),可以用來在生產(chǎn)者與消費者線程之間安全地傳遞消息或其他數(shù)據(jù),它會為調(diào)用者處理鎖定,使多個線程可以安全而更容易地處理同一個Queue實例.Queue的大小可能受限,以限制內(nèi)存使用或處理,需要的朋友可以參考下2021-05-05
python dataclass 快速創(chuàng)建數(shù)據(jù)類的方法
在Python中,dataclass是一種用于快速創(chuàng)建數(shù)據(jù)類的裝飾器和工具,本文實例代碼中我們定義了一個Person數(shù)據(jù)類,并使用fields()函數(shù)遍歷其字段,打印出每個字段的名稱、類型、默認值和元數(shù)據(jù),對python dataclass 數(shù)據(jù)類相關(guān)知識感興趣的朋友一起看看吧2024-03-03
aws 通過boto3 python腳本打pach的實現(xiàn)方法
這篇文章主要介紹了aws 通過boto3 python腳本打pach的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
python實現(xiàn)與arduino的串口通信的示例代碼
本文主要介紹了python實現(xiàn)與arduino的串口通信的示例代碼, 在Python中,我們可以使用pyserial庫來實現(xiàn)與Arduino的串口通信,下面就來介紹一下如何使用,感興趣的可以了解一下2024-01-01

