我的隨手筆記--python

文件操作

對文件操作流程

  1. 打開文件,得到文件句柄並賦值給一個變量
  2. 通過句柄對文件進行操作
  3. 關閉文件 

基本操作  

1

2

3

4

5

6

7

8

= open('lyrics'#打開文件

first_line = f.readline()

print('first line:',first_line) #讀一行

print('我是分隔線'.center(50,'-'))

data = f.read()# 讀取剩下的所有內容,文件大時不要用

print(data) #打印文件

 

f.close() #關閉文件

打開文件的模式有:

  • r,只讀模式(默認)。
  • w,只寫模式。【不可讀;不存在則創建;存在則刪除內容;】
  • a,追加模式。【可讀;   不存在則創建;存在則只追加內容;】

"+" 表示可以同時讀寫某個文件

  • r+,可讀寫文件。【可讀;可寫;可追加】
  • w+,寫讀
  • a+,同a

"U"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標註)

  • rb
  • wb
  • ab

注意:

1、用這種方式讀取:,避免readline的方式一次性讀取大文件,內存佔用過大

f = open("file",r+)

for line in f

    print(line)

2、替換字符串,方法一:讀行,每行替換字符串,逐行寫入新文件

f = open("file",r)
f_new=open("file_new",rw)
str_old="aa"
str_new="bb"
for line in f
    if str_old in line
        line=line.replace(str_old,str_new)
    f_new.write(line)

3、用with方法防止未關閉文件佔用內存

with open("file1") as f1,open("file2") as f2:

 

 

高階函數

變量可以指向函數,函數的參數能接收變量,那麼一個函數就可以接收另一個函數作爲參數,這種函數就稱之爲高階函數。

1

2

3

4

5

6

def add(x,y,f):

    return f(x) + f(y)

 

 

res = add(3,-6,abs)

print(res)

裝飾器

高階函數 + 嵌套函數  ->  裝飾器

上述有個問題,只能裝飾 不傳參的函數, 若test1(*args)需傳參,需修改

def(*args,**kwargs):

    ....

    func(*args,**kwargs)

即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章