13 檔案修改及函式的基本使用

2022-09-06 13:09:19 字數 3662 閱讀 9422

一、檔案修改

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()

print

(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

print

(x,y)

func(1,2)

2.6.3、空函式,函式體**為pass

def

func(x, y):

pass

2.7、三種定義用在什麼地方

2.7.1、無參函式的應用場景

def

interactive():

name=input('

username>>: ')

age=input('

age>>: ')

gender=input('

gender>>: ')

msg='

名字:{} 年齡:{} 性別

'.format(name,age,gender)

print

(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、空參函式的應用場景

def

auth_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)

print

(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值

def

func():

return 10res=func()

print(res)

4.3、返回多個值:用逗號分隔成多個值,被return返回成元組

def

func():

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 讀取模式 檔案不存在則報錯 存在的話則開啟檔案,並且將檔案指標放在檔案的開頭 檔案不存在則建立檔案,存在的話則開啟檔案,並且將檔案指標放在檔案...