文件操做python
+模式: r+t w+t a+t r+b w+b a+b 函數
可讀可寫,其餘功能與人,r,w,a相同工具
f.seek(offset,whence) 文件指針移動 offest的單位爲bytes whence是參照物spa
f.seek(3,0) whence默認值爲0 0:文件開頭開始 1:當前指針位置 2:參照末尾指針
強調:其中whence = 1 和 whence = 2 只能在b模式下使用,除非offest =0 是均可以blog
f.seek(-2,2)當whence = 2 時,offset須要用負數表示內存
f.tell()每次統計都是從文件開頭到當前指針所在位置rem
注:只有在t模式下的read(n),n才表明字符的個數,除此以外其餘但凡涉及到文件指針的都已bytes爲單位it
f.truncate(9) 固定參照文件開頭,9表明9bytesclass
修改文件:
方法一:先將原文件內容一次性讀入內存,在內存修改完成後覆蓋寫回原文件
缺點:文件過大的狀況下會佔用過多的內存空間
優勢:修改期間文件內容始終只有一份
with open('a.txt') as read_f: data=read_f.read() data=data.replace('alex','SB') with open('a.txt') as write_f: write_f.write(data)
方法二:以讀的方式打開原文件,寫的方式打開新文件,從原文件中循環讀取每一行內容, 修改後寫入新文件,而後刪除原文件,把新文件名命名爲原來的文件名
缺點:修改期間文件內容有兩份
優勢:內存中同一時間只有一行內容
import os with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f: for line in read_f: line=line.replace('alex','SB') write_f.write(line) os.remove('a.txt') os.rename('.a.txt.swap','a.txt')
函數的應用
1.什麼是函數?
在程序中,函數就是具有某一功能的工具,函數的使用必須遵循先定義,後調用的原則
2.爲什麼使用函數?
不用函數的問題:
①.程序冗長
②.擴展性差
③.可讀性差
3.如何使用:先定義後使用
def 函數名(參數,參數……):
‘’’
功能描述
參數描述
return:返回值描述
‘’’
代碼塊
return 返回值
4.定義:
沒有定義而直接引用的函數名,至關於引用一個不存在的變量名
①函數的定義階段:不執行函數體代碼,但會檢測函數體的語法
②調用階段:執行函數體代碼
參數:函數體接收外部值的一個媒介
函數定義的三種形式:
1.無參數函數:在定義階段,括號內沒有參數
注意:定義時無參,意味着調用時也無需傳入參數
應用:若是函數體代碼邏輯不須要外部傳參值時,用無參數函數
2.有參數函數:在函數定義時,括號內有參數
注意:定義時有參,意味着調用時也須要傳參
應用:若是函數體代碼邏輯須要外部傳參值時,須要有參數函數
3.空函數:
def func():
pass
用於結構的構建,先搭好結構,後期再填代碼