編寫乙個監測檔案末尾追加內容的小程式
import time
with open('access.log', mode='rb') as f:
# 1、將指標跳到檔案末尾
# f.read() # 錯誤
f.seek(0,2)
while true:
line=f.readline()
if len(line) == 0:
time.sleep(0.3)
else:
print(line.decode('utf-8'),end='')
實現思路:將檔案內容一次性全部讀入記憶體,然後在記憶體中修改完畢後再覆蓋寫回原檔案
優點: 在檔案修改過程中同乙份資料只有乙份
缺點: 會過多地占用記憶體
with open('c.txt',mode='rt',encoding='utf-8') as f:
res=f.read()
data=res.replace('alex','dsb')
print(data)
with open('c.txt',mode='wt',encoding='utf-8') as f1:
f1.write(data)
實現思路:以讀的方式開啟原檔案,以寫的方式開啟乙個臨時檔案,一行行讀取原檔案內容,修改完後寫入臨時檔案...,刪掉原檔案,將臨時檔案重新命名原檔名
優點: 不會占用過多的記憶體
缺點: 在檔案修改過程中同乙份資料存了兩份
with open('c.txt', mode='rt', encoding='utf-8') as f, \
open('.c.txt.swap', mode='wt', encoding='utf-8') as f1:
for line in f:
f1.write(line.replace('alex', 'dsb'))
os.remove('c.txt')
os.rename('.c.txt.swap', 'c.txt')
1) 什麼是函式
函式就相當於具備某一功能的工具
函式的使用必須遵循乙個原則:
先定義
後呼叫
2) 為何要用函式
①組織結構不清晰,可讀性差
②**冗餘
③可維護性、擴充套件性差
3) 如何用函式
先定義
三種定義方式
後呼叫
三種呼叫方式
返回值
三種返回值的形式
定義的語法
def 函式名(引數1,引數2,...)
python之檔案修改
with open a.txt mode r t encoding utf 8 as f print f.writable f.seek 7,0 f.write sb with open a.txt mode r t encoding utf 8 as f f.seek 3,0 f.write h ...
python函式學習內容 python之函式學習
usr bin env python 位置引數說明 位置引數 通過引數傳遞的位置來決定 def echo1 x,y print x format x print y format y return x y res1 echo1 2,6 print res1 關鍵字引數 關鍵字引數 通過引數名稱來決定...
python之zip函式和sorted函式
zip 函式和sorted 函式 zip 函式 將兩個序列合併,返回zip物件,可強制轉換為列表或字典 sorted 函式 對序列進行排序,返回乙個排序後的新列表,原資料不改變 合併兩個列表,以列表型別輸出 list str a b c d list num 1,2,3,4 list new zip...