首頁 > 軟體

Python-with open() as f的用法及說明

2022-12-21 14:00:51

Python-with open() as f的用法

with open(r'filename.txt') as f:
   data_user=pd.read_csv(f)  #檔案的讀操作

with open('data.txt', 'w') as f:
   f.write('hello world')  #檔案的寫操作

相關引數

  • r:以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是**預設模式**。
  • rb:以二進位制格式開啟一個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。
  • r+:開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
  • rb+:以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
  • w:開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
  • wb:以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
  • w+:開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
  • wb+:以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
  • a:開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
  • ab:以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
  • a+:開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
  • ab+:以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

file物件的屬性

  • file.read([size]):將檔案資料作為字串返回,可選引數size控制讀取的位元組數
  • file.readlines([size]):返回檔案中行內容的列表,size引數可選
  • file.write(str):將字串寫入檔案
  • file.writelines(strings):將字串序列寫入檔案
  • file.close():關閉檔案
  • file.closed:表示檔案已經被關閉,否則為False
  • file.mode:Access檔案開啟時使用的存取模式
  • file.encoding:檔案所使用的編碼
  • file.name:檔名
  • file.newlines:未讀取到行分隔符時為None,只有一種行分隔符時為一個字串,當檔案有多種型別的行結束符時,則為一個包含所有當前所遇到的行結束的列表
  • file.softspace:為0表示在輸出一資料後,要加上一個空格符,1表示不加。這個屬性一般程式設計師用不著,由程式內部使用

一道例題

將ecb.bmp的前128位元組替換為bmp檔案格式特有的位元組的指令碼

from Crypto.Util.number import long_to_bytes

with open('ecb.bmp','rb') as f:  #讀入
    data=f.read()
pre=0x424d76483f00000000007600000028000000000f000070080000010004000000000000483f00000000000000000000000000000000000000000000008000008000000080800080000000800080008080000080808000c0c0c0000000ff0000ff000000ffff00ff000000ff00ff00ffff0000ffffff00ffffffffffffffffffffL
out=long_to_bytes(pre)+data[128:]

with open('out.bmp','wb') as g:    #寫入
    g.write(out)

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com