import datetime
站在用戶的角度思考問題,與客戶深入溝通,找到湄潭網(wǎng)站設(shè)計與湄潭網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋湄潭地區(qū)。
import time
# 最后文件中只寫入了最后一次的 msg(?)
for i in range(0,5):
ctime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = f"{i} - {ctime}"
with open('test.txt',mode='w+',encoding='utf8') as f:
f.write(msg)
time.sleep(5)
else:
print('--------over')
# 寫入5次,最后文件中每次寫入的內(nèi)容會覆蓋前一次內(nèi)容
for i in range(0,5):
ctime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = f"{i} - {ctime}"
with open('test.txt',mode='w+',encoding='utf8') as f:
f.write(msg)
time.sleep(5)
else:
print('--------over')
# 寫入5次,最后文件中每次寫入的內(nèi)容會覆蓋前一次內(nèi)容
for i in range(0,5):
ctime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = f"{i} - {ctime}"
with open('test.txt',mode='w+',encoding='utf8') as f:
f.write(msg)
f.flush() # 使用 flush()
time.sleep(5)
else:
print('--------over')
# 文件中寫入了5條數(shù)據(jù),寫入時間為文件關(guān)閉時,一次性寫入5條數(shù)據(jù)
with open('test.txt', mode='w+', encoding='utf8') as f:
for i in range(0,5):
ctime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = f"{i} - {ctime}\n"
f.write(msg)
time.sleep(5)
else:無錫婦科檢查醫(yī)院 http://www.87554006.com/
print('--------over')
# 文件中先后寫入了5條數(shù)據(jù),寫入時間為每次調(diào)用 flush 后
with open('test.txt', mode='w+', encoding='utf8') as f:
for i in range(0,5):
ctime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = f"{i} - {ctime}\n"
f.write(msg)
f.flush() # 使用 flush()
time.sleep(5)
else:
print('--------over')
# mode 為寫模式時,不能讀取文件內(nèi)容(或者說讀取的文件內(nèi)容為空)
with open('test.txt', mode='w+', encoding='utf8') as f:
r = f.read()
print(r)
注意:
由于緩沖機(jī)制,實(shí)際上字符串可能并沒有立即寫入到文件中,除非緩沖區(qū)滿時或調(diào)用 flush()或 close()方法后。
一般的文件流操作都包含緩沖機(jī)制,write方法并不直接將數(shù)據(jù)寫入文件,而是先寫入內(nèi)存中特定的緩沖區(qū)。
正常情況下緩沖區(qū)滿時,操作系統(tǒng)會自動將緩沖數(shù)據(jù)寫入到文件中。
flush 方法是用來刷新緩沖區(qū)的,即將緩沖區(qū)中的數(shù)據(jù)立刻寫入文件,同時清空緩沖區(qū)。
至于 close 方法,原理是內(nèi)部先調(diào)用 flush 方法來刷新緩沖區(qū),再執(zhí)行關(guān)閉操作,這樣即使緩沖區(qū)數(shù)據(jù)未滿也能保證數(shù)據(jù)的完整性。
如果進(jìn)程意外退出或正常退出時而未執(zhí)行文件的close方法,緩沖區(qū)中的內(nèi)容將會丟失。
分享文章:關(guān)于for循環(huán)+with向文件寫內(nèi)容的幾點(diǎn)理解
轉(zhuǎn)載注明:http://jinyejixie.com/article32/iehssc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、小程序開發(fā)、App開發(fā)、網(wǎng)站制作、靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)