python持久化存儲(chǔ)文件操作方法
存儲(chǔ)文件的重要
一個(gè)程序在運(yùn)行過(guò)程中用了九牛二虎之力終于計(jì)算出了結(jié)果,試想一下如果不把這些數(shù)據(jù)存放起來(lái),相比重啟電腦之后,。 默認(rèn)數(shù)據(jù)是加載到內(nèi)存中,結(jié)果也是保存到內(nèi)存中, 程序執(zhí)行結(jié)束,所有的數(shù)據(jù)釋放。
要讀取二進(jìn)制文件,比如圖片、視頻等等,用'rb', ‘wb', 'ab'等模式打開文件即可!
mode:
r:只能讀文件
w:只能寫入(清空文件內(nèi)容)
a+:讀寫(追加)
打開文件:
f = open(‘doc/hello.txt',mode=‘a(chǎn)')
文件的讀寫操作
f.write('\nhello python')
文件的關(guān)閉
f.close()
f = open('C:/Users/Shinelon/PycharmProjects/pythonProject1/python/westos',mode='a+')
f.write('\nxinxiedeo')
結(jié)果如下:
本來(lái)文件westos里面內(nèi)容如下:

執(zhí)行命令之后:就添加進(jìn)去了


指針的概念
對(duì)于指針:seek(offset, from)有2個(gè)參數(shù): offset:偏移量 from:方向?。?br />
0:表示文件開頭;
1:表示當(dāng)前位置;
2:表示文件末尾
文件的關(guān)閉
方法一: 調(diào)用close()方法關(guān)閉文件。文件使用完畢后必須關(guān)閉,因?yàn)槲募?duì)象會(huì)占用操作系統(tǒng)的資源,
并且操作系統(tǒng)同一時(shí)間能打開的文件數(shù)量也是有限的:
方法二: Python引入了with語(yǔ)句來(lái)自動(dòng)幫我們調(diào)用close()方法
with open('/root/PycharmProjects/pythonProject1/4/test.txt','w+') as f:
f.write('hello world\n')
f.seek(0,0) #移動(dòng)指針位置到文件最開始
print("當(dāng)前指針位置為:",f.tell())
print(f.read()) #讀取文件內(nèi)容
執(zhí)行和結(jié)果如下:

若是修改指針位置:
with open('/root/PycharmProjects/pythonProject1/4/test.txt','w+') as f:
f.write('hello world\n')
f.seek(0,2) #移動(dòng)指針位置到文件末尾
print("當(dāng)前指針位置為:",f.tell())
print(f.read()) #讀取文件內(nèi)容
那么輸出如下:

OS模塊
功能:
os,語(yǔ)義為操作系統(tǒng),處理操作系統(tǒng)相關(guān)的功能,可跨平臺(tái)。 比如顯示當(dāng)前目錄下所有文件/刪除某個(gè)文件/獲取文件大小……
獲取操作系統(tǒng)的類型
import os #Linux操作系統(tǒng) import platform #windows操作系統(tǒng) print(os.name) # 2.獲取主機(jī)信息,windows系統(tǒng)使用platform模塊,如果是linux系統(tǒng)直接使用os模塊
結(jié)果如下:

我們需要完善代碼:
不確定是windows系統(tǒng),還是linux操作系統(tǒng)!!
用到
try:可能報(bào)錯(cuò)的執(zhí)行內(nèi)容!
excpt:可能異常的執(zhí)行內(nèi)容!
finally:都會(huì)執(zhí)行的內(nèi)容!
import os import platform try: uname = os.uname() except : uname = platform.uname() finally: print(uname)
結(jié)果如下:

獲得系統(tǒng)的環(huán)境變量!
import os envs = os.environ print(envs)
結(jié)果如下:

文件的路徑問(wèn)題也很重要:
先判斷是不是就對(duì)的路徑
import os
print(os.path.isabs('/root/PycharmProjects/pythonProject1/4/test.txt'))
print(os.path.isabs('test.txt'))
結(jié)果如下:

生成絕對(duì)路徑:
import os
print(os.path.abspath('/root/PycharmProjects/pythonProject1/4/test.txt'))
print(os.path.abspath('test.txt'))
結(jié)果如下:

目錄名和文件名的拼接
#os.path.dirname獲取某個(gè)文件對(duì)應(yīng)的目錄名
#__file__是指當(dāng)前文件
#join 拼接,將目錄和文件名拼接起來(lái)
import os BASE_DIR = os.path.dirname(__file__) setting_file = os.path.join(BASE_DIR,'dev.conf') print(setting_file)
結(jié)果如下:

獲取目錄名或者文件名
import os filename = 'D:/root/westos/test.txt' print(os.path.basename(filename)) #輸出文件名 print(os.path.dirname(filename)) #輸出文件所在目錄
結(jié)果如下:

介紹文件的創(chuàng)建和刪除
os模塊中的rename()可以完成對(duì)文件的重命名操作。
rename(需要修改的文件名, 新的文件名)
os模塊中的remove()可以完成對(duì)文件的刪除操作
remove(待刪除的文件名)
以上就是python持久化存儲(chǔ)文件操作的詳細(xì)內(nèi)容,更多關(guān)于python存儲(chǔ)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式
這篇文章主要介紹了使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式,住喲有兩種方式,具體內(nèi)容,需要的小伙伴可以參考下面文章內(nèi)容,希望對(duì)你有所幫助2022-03-03
python numpy中multiply與*及matul 的區(qū)別說(shuō)明
這篇文章主要介紹了python numpy中multiply與*及matul 的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
使用Python和xlwt向Excel文件中寫入中文的實(shí)例
下面小編就為大家分享一篇使用Python和xlwt向Excel文件中寫入中文的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
使用Python開發(fā)Telegram?Bot的流程步驟
Telegram?Bot?是一種可以與用戶交互的機(jī)器人應(yīng)用程序,通過(guò)?Telegram?的?Bot?API?與服務(wù)器通信,它可以用來(lái)處理消息、執(zhí)行命令、提供服務(wù),如通知提醒、數(shù)據(jù)查詢和自動(dòng)化任務(wù)等,本文給大家介紹了如何用?Python?開發(fā)一個(gè)?Telegram?Bot,需要的朋友可以參考下2025-01-01
pycharm 創(chuàng)建py文件總是為txt格式的問(wèn)題及解決
這篇文章主要介紹了pycharm 創(chuàng)建py文件總是為txt格式的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
快速進(jìn)修Python指南之面向?qū)ο蟾呒?jí)篇
這篇文章主要為大家介紹了Java開發(fā)者如何快速進(jìn)修Python指南之面向?qū)ο蟾呒?jí)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Django框架實(shí)現(xiàn)在線考試系統(tǒng)的示例代碼
這篇文章主要介紹了Django框架實(shí)現(xiàn)在線考試系統(tǒng)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
python使用py2neo創(chuàng)建neo4j的節(jié)點(diǎn)和關(guān)系
這篇文章主要介紹了python使用py2neo創(chuàng)建neo4j的節(jié)點(diǎn)和關(guān)系,第一步使用py2neo連接neo4j的方法然后根據(jù)dict創(chuàng)建Node,更多相關(guān)資料需要的朋友參考下面文章內(nèi)容2022-02-02

