python學習之檔案修改和函式基礎

2022-06-12 13:12:11 字數 4368 閱讀 1908

編寫乙個監測檔案末尾追加內容的小程式

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...