python 基礎 day03 檔案操作

2022-08-13 12:48:10 字數 2266 閱讀 2063

對檔案操作流程:

1.開啟檔案,得到檔案控制代碼並賦值給乙個變數

2.通過控制代碼對檔案進行操作

3.關閉檔案

建立乙個名為lyrics的txt檔案在目錄下

f = open('lyrics','r',encoding="utf-8")  #開啟檔案,f為檔案控制代碼,r為讀模式

first_line = f.readline()

print("first line:",first_line) #讀檔案的第一行,檔案太大時建議循壞方式讀取內容

print('我是分割線'.center(50,'-')) #建立一條分割線

data = f.read() #讀取完整的檔案,檔案太大時不要使用

print(data) #列印檔案

f.close() #關閉檔案

注意檔案是utf-8儲存的,開啟檔案時open函式通過作業系統開啟檔案,而我所在的win7作業系統預設使用gbk編碼,因為不能直接開啟,需要加上encoding="utf-8"

開啟檔案的模式有:

"+" 表示可以同時讀寫某個檔案

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

"b"表示處理二進位制檔案(如:ftp傳送上傳iso映象檔案,linux可忽略,windows處理二進位制檔案時需標註)

迴圈讀取檔案:

readline 讀取整行文字

readlines 讀取所有行

讀取列印n行資料

for i in range(n):

print(f.readline)

讀取列印整份檔案:

只適合讀小記憶體檔案

for line in f.readlines():   #每迴圈一次(列印一行),line等於乙個元素

print(line.strip()) #列印每行,strip()函式:去掉換行符和空格

讀取到第九行插入「分割線」:

for index,line in enumerate(f.readlines()):

if index == 9:

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

continue

print(line.strip())

一行行讀取檔案,記憶體裡面只儲存一行文字

可適用大檔案,效率更高!推薦!

for line in f:   #f已經變成了乙個迭代器

print(line)

讀取到第九行插入「分割線」: 

#自己新增計數器

count = 0

for line in f:

if count == 9:

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

print(line)

count += 1

檔案修改:

兩種方式

1.把檔案全部載入到記憶體物件,像vim一樣,修改完後寫到原檔案(不可取)

2.開啟乙個檔案,修改完寫入乙個新檔案裡面

如下:

f= open("lyrics","r",encoding="utf-8")

f_new= open("new-lyrics.bak",'w',encoding="utf-8")

for line in f:

if"原文內容哈哈哈" in line:

line = line.replace("原文內容哈哈哈","更改內容嘿嘿嘿")

f_new.write(line)

f.close()

f_new.close()

with語句

為了避免忘記開啟檔案,可以用with

with open("lyrics","r", encoding="utf-8") as f:

for line in f:

print(line)

#不用執行關閉檔案操作

當with **塊執行完畢後,內部會自動關閉並釋放檔案資源

day 03檔案操作模式

r open db r f.close r讀出來的是字串 rb讀出來的是位元組 w open db wb w.write bytes 中國 encoding utf 8 w.close r w a x 二進位制的是 r bx b w ba b f open db r encoding utf 8 d...

python基礎程式設計day03

從來記錄文字資訊 表示方法 空字串的表示方式 非空字串的表示方式 hello hello hello hello 單引號雙引號的區別 單引號內部的雙引號不算結束符 雙引號內部的單引號不算結束符 三引號字串 作用 三引號內可以包括單引號和雙引號 三引號字串中的換行符會自動換成 n 轉義序列代表特殊的字...

day03 前端基礎

transform translate x,y x 表示向x軸正方向移動的距離 x表示向x軸反方向移動的距離 y 表示向y軸正方向移動 這裡的y軸正方向指的向下移動 y表示向y軸反方向 延y軸向上移動!示例 transform translate 300px,0px transform transl...