一、檔案修改
1.1檔案修改的兩種方式
1.1.1、方法一
實現思路:將檔案內容一次性全部讀入記憶體中,在記憶體中修改完畢後在覆蓋寫回原檔案
優點:檔案修改中,不會生成新的檔案占用儲存
缺點:會過多的占用記憶體
with open(r'a.txt
', mode='
rt', encoding='
utf-8
') as f:
res =f.read()
msg = res.replace('
a', 'b'
)with open(r
'a.txt
', '
w', encoding='
utf-8
')as f1:
f1.write(msg)
1.1.2、方法二
實現思路:以讀的方式發開第乙個檔案,以寫的方式開啟第二個臨時檔案,一行行的讀取檔案,修改後寫入臨時檔案。刪除原檔案,將臨時檔案命名原檔案。
優點:不會過多的占用記憶體
缺點:在檔案修改的過程中同乙份資料存入了兩份
f = open('a.txt')
res =f.read()
(res)
with open(r
'a.txt
', '
r', encoding='
utf-8
')as f1, \
open(r
'b.txt
', '
w', encoding='
utf-8
')as f2:
for x in
f1: f2.write(x.replace('a
', 'b'
))os.remove(
'a.txt')
os.rename(
'b.txt
', '
a.txt
')
二、函式的基本使用
2.1、什麼是函式
函式相當於具備某一種功能的工具
函式的使用必須遵循乙個原則:
先定義
後呼叫2.2、為什麼要用函式
1.組織結構不清晰,可讀性差
2.**冗餘
3.可維護性差、擴張性差
2.3、怎麼使用函式
1、先定義:三種定義方式
2.、後呼叫:三種呼叫方式
3、返回值:三種返回方式
2.4、定義函式會發生的事
1、申請記憶體空間儲存儲存函式體**
2、將上述記憶體位址繫結函式名
3.定義函式不會檢測函式體**,但會檢測函式體語法
2.5、呼叫函式會發生的事
1、通過函式名找到函式的記憶體位址
2、然後加口號就是在觸發函式體**的執行
2.6、先定義
def函式名(引數1,引數2,...):
"""文件描述
"""函式體
return 值
2.6.1、形式一:無引數函式
def bar(): #bar=函式的記憶體位址
print('
from bar')
deffoo():
#print(bar)
bar() #
執行def bar的函式,即print('from bar')
print('
from foo')
foo()
#先執行def foo():的函式,即bar(),再執行print('from foo')
2.6.2、形式
二、有參函式
def func(x,y): #x=1 y=2
(x,y)
func(1,2)
2.6.3、空函式,函式體**為pass
deffunc(x, y):
pass
2.7、三種定義用在什麼地方
2.7.1、無參函式的應用場景
definteractive():
name=input('
username>>: ')
age=input('
age>>: ')
gender=input('
gender>>: ')
msg='
名字:{} 年齡:{} 性別
'.format(name,age,gender)
(msg)
interactive()
2.7.2、有參函式的應用場景
def add(x,y): #引數-》原材料
#x=20
#y=30
res=x +y
#print(res)
return res #
返回值-》產品
#add(10,2)
res=add(20,30)
print(res)
2.7.3、空參函式的應用場景
defauth_user():
"""user authentication function
"""pass
defdownload_file():
"""download file function
"""pass
三、呼叫函式
3.1、語句的形式:只加括號呼叫函式
interactive()add(1,2)
3.2、表示式形式:通過函式賦值給變數,在輸出變數
def add(x,y): #引數-》原材料
res=x +y
return res #
返回值-》產品
#賦值表示式
res=add(1,2)
(res)
#數學表示式
res=add(1,2)*10
print(res)
3.3、函式呼叫可以當做引數
res=add(add(1,2),10)print(res)
四、函式返回值
return是函式結束的標誌,即函式體**一旦執行return就會終止函式的執行,並且將return後的值當做本次執行的結果返回。
4.1、返回空,函式內沒有return,或者return none
return none
4.2、返回乙個值:return值
deffunc():
return 10res=func()
print(res)
4.3、返回多個值:用逗號分隔成多個值,被return返回成元組
deffunc():
return 10, '
aa', [1, 2]
res =func()
print(res, type(res))
day12 檔案高階及函式基本使用
1.x模式 控制檔案操作的模式 了解 只做了解沒啥可說的。x,只寫模式 不可讀 不存在則建立,存在則報錯 with open a.txt mode x encoding utf 8 as f pass with open c.txt mode x encoding utf 8 as f f.read...
Python day13檔案的讀寫
檔案操作 f open e 1.txt encoding gbk 開啟檔案 print f.writable 是否可寫 print f.read 讀取檔案 print f.readable 是否可讀 f.close f open e 1.txt encoding gbk print f.readli...
7 檔案的基本操作
1.檔案的開啟模式w write 寫入模式 只能寫入字串和位元組流 檔案不存在則建立檔案,存在的話則開啟清空內容,並且將檔案指標放在檔案的開頭 r read 讀取模式 檔案不存在則報錯 存在的話則開啟檔案,並且將檔案指標放在檔案的開頭 檔案不存在則建立檔案,存在的話則開啟檔案,並且將檔案指標放在檔案...