一.檔案操作
.close()作用:關閉流,防止流阻塞。(一定要寫!!!)
#1.不安全**,理由:close()方法可能失效,關閉不上
f = open(""gj.txt",encoding="utf-8")
print(f.read())
print(1/0)
f.close()
#2.邏輯正確,但是**出現冗餘
my = open("gj.txt",encoding="utf-8")
try:
print(my.read())
print(1/0)
except:
pass
finally:
my.close()
#3.等價於#2.
with open("gj.txt",encoding="utf-8") as my:
print(my.read())
print(1/0)
二.with:
1.作用:資源釋放(如:檔案使用後會自動關閉;執行緒中鎖的自動獲取和釋放等。)
2.工作原理:
(1)緊跟with後面的語句被求值後,返回物件的" __ enter __ () 「方法被呼叫,這個方法的返回值將被賦值給as後面的變數。
(2)當with後面的**塊全部被執行完後,將呼叫前面返回物件的」 __ exit __ () "方法。
with工作原理**如下:
class demo(): #定義乙個demo()類
def __enter__(self):
print("進入enter方法")
return "你好"
def __exit__(self, exc_type, exc_val, exc_tb):
print("進入exit方法")
print("----",exc_type) # exc_type: 錯誤的型別
print("----",exc_val) # exc_val: 錯誤型別對應的值
print("----",exc_tb) # exc_tb: **中錯誤發生的位置
執行結果:
第一步先 執行with後面的語句,在執行test()方法後,返回demo()類的物件;
呼叫demo()類中的__enter__()方法,在接收 __ enter __() 方法後,賦值給t並列印。
第二步在執行完全部方法後,呼叫 __ exit __ () 方法,釋放資源。
with總結:
實際上,在with後面的**塊丟擲異常時,exit()方法會被執行。開發庫時,清理資源,關閉資源等操作,都可以放在exit()方法中。
總之,with-as 表示式極大地簡化了每次寫finally的工作,這對**的優雅性是有極大的幫助的,這也是python語言優雅的乙個原因。
with還可以一次性的開啟多個檔案,如下所示:
with open(「a.txt」) as f1,open(「b.txt」) as f2:
do something
三.檔案和路徑:
1.fileinput:好處一次可以開啟所有檔案
1)用fileinput操作檔案的作用:
fileinput可以同時讀乙個或者多個檔案中的內容進行迭代、遍歷等操作。該模組的input()方法有點類似檔案的readlines()方法,區別是前者只是迭代乙個物件,每次只生成一行,而後者是一次性讀取所有行,當遇到大檔案時,無疑前者更有效率。
2)fileinput的常用可選引數:
(1)inplace:用於決定print輸出到哪。若inplace = 0,print 則輸出到螢幕(即標準輸出);若inplace = 1,則把print結果寫到檔案。預設情況下inplace = 0。
(2)backup:指定檔案的副檔名,如.bak,若備份檔案存在,則覆蓋。
2.fileinput模組中常用的函式:
input(): 返回能夠用於迭代 一行或多個檔案中所有行的物件
filename(): 返回當前檔案的名稱
lineno(): 返回當前讀取的行的數量
isfirstline(): 返回當前檔案行是否為檔案的第一行
filelineno(): 返回當前讀取行在檔案中的行數
執行結果:
執行結果:
3.合併
執行結果:
#.rstrip():作用:去空格和換行符
拆分檔案複製
檔案加密
四.亂碼解碼:
讀取檔案有兩種方式:位元組、字元
出現亂碼一般是以字元的方式讀取,為防止亂碼採用位元組方式讀取
採用utf-8解碼
執行結果:
Python9 檔案操作
檔案的開啟 open 1.py r r 以唯讀開啟檔案 w 開啟檔案用於寫入 a 開啟乙個檔案追加 rb,wb,ab 以二進位制方式操作 r w a 開啟檔案可讀寫 rb wb ab 以二進位制方式開啟檔案可讀寫 close 關閉檔案操作 read 讀取檔案 內可放要讀的位元組數,如 read 1 ...
python學習(九) 檔案操作
1 檔案開啟 1.開啟檔案,得到檔案控制代碼並賦值給乙個變數 f open a.txt r encoding utf 8 預設開啟模式就為r open預設編碼為gbk r,w,a 2.通過控制代碼對檔案進行操作 data f.read 3.關閉檔案 f.close 1 讀取 f.readable 是...
Python3 檔案操作
open函式的第乙個引數是要開啟的檔名 檔名區分大小寫 read函式可以一次性讀入並返回檔案的所有內容。close函式負責關閉檔案 注意 如果忘記關閉檔案,會造成系統資源消耗,而且會影響到後續對檔案的操作。方法執行後,會把檔案指標移動到檔案的末尾。示例 開啟要讀取的檔案 file open test...