普通檔案的讀寫

2021-10-25 00:14:00 字數 2294 閱讀 1896

檔案讀取

1.開啟檔案

"""

open(path,flag,encoding)

path:需要開啟的檔案的路徑,可以是相對路徑,也可以是絕對路徑

flag:表示檔案開啟的方式

r:唯讀,檔案描述符出現在檔案的開頭

rb:read binary,以二進位制的方式開啟乙個檔案用於唯讀,檔案描述符出現在 檔案的開頭

r+:讀寫,檔案不存在會報異常

rb+:以二進位制的方式開啟乙個檔案用於讀寫

encoding:

utf-8/utf-8/utf8

gbk/gbk

"""# 注意2:encoding一定要和檔案本身的編碼格式保持一致,否則亂碼

2.讀取內容

"""

f.read(value),value省略,則預設讀取檔案中的全部內容,value表示位元組數

f.readline(value):value省略,則預設一次只能讀取一行,value表示位元組數

f.readlines():以行為單位,返回乙個列表,行作為列表中的元素

"""

3.關閉檔案

關閉檔案的過程實際上是將檔案物件銷毀的過程,為了避免造成系統資源的浪費

f.close()

檔案寫入

1.開啟檔案

open(path,flag,encoding)

path:需要開啟的檔案的路徑,可以是相對路徑,也可以是絕對路徑

flag:表示檔案開啟的方式

w:普通檔案檔案的寫入 *****

wb:read binary,二進位制檔案內容的寫入 *****

w+:讀寫,檔案不存在建立

wb+:以二進位制的方式開啟乙個檔案用於讀寫

encoding:

utf-8/utf-8/utf8

gbk/gbk

注意: 使用w或者wb,新的內容會覆蓋掉舊的內容

使用a,新的內容會追加到原內容的後面

"""# 注意1:寫入檔案的時候,檔案可以不存在,會自動建立

# 注意2:常用檔案的編碼格式為utf-8.s,如果encoding使用gbk,開啟檔案會出現亂碼

2.寫入內容

x.write(str),將指定字串寫入到指定檔案中,返回被寫入的字串的長度

x.writelines(seq), 將序列中的字串寫入到指定檔案中

# 注意writelines傳參的時候,列表中的每個元素的後面新增\n

# f2.writelines(["fhajkfh\n","aaaaa\n","tquioetuqoiwu6578465\n"])

# with上下文寫入

with open(r"file3.txt","w",encoding="utf-8") as x:

x.write("fahj")

x.flush() # 重新整理:如果在資料量大的情況下,加快資料的寫入速率

3.關閉檔案

非文字檔案讀寫

如果採用rb或者wb的方式開啟檔案,則必須省略encoding引數

普通文字檔案讀取完成之後獲取到的是乙個字串,二進位制讀取結果為乙個位元組

with管理上下文

"""

with上下文的工作原理:

with是管理上下文的關鍵字,也被稱為上下文管理器,當乙個物件使用with的時候,

當物件進入上下文的時候,會自動呼叫__enter__;

當物件退出上下文的時候,會自動呼叫__exit__;

as關鍵字:通過as關鍵字接收使用with關鍵字的物件,as後面的是乙個變數【引用】

"""class check(object):

def __enter__(self):

# 當物件進入上下文環境時,主要是為了初始化相應的資源,如:開啟檔案

return self

def __exit__(self, exc_type, exc_val, exc_tb):

"""exc :exception,異常【錯誤】

:param exc_type: 異常型別

:param exc_val: 異常值

:param exc_tb:

"""return true #內部自己處理異常,不會向直譯器丟擲【raise】異常

# 讀取檔案

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

print(f.read())

MFC檔案普通讀寫

新建乙個檔案讀寫物件 cfile file pfilename,定義乙個檔名的資料指標 cfile modecreate 開啟模式 cfile modewrite 讀入資料 cfile file pfilename,cfile moderead char pfiledata 6 移動的位移,起點位置...

檔案系統原始碼分析之普通檔案讀寫

檔案讀寫主要是通過inode結構裡的資料,讀取或者寫入到底層的硬碟中,並更新相應的屬性。linux fs read write.c c 1991 linus torvalds include include include include include include extern intrw c...

python二進位制讀寫檔案與普通檔案

c 1 為email獲取的list郵件源字元,是bytes型別 no msg content b r n join c 1 msg content b r n join c 1 decode utf 8 普通讀寫 write d open str e eml w d.write msg conten...