在記憶體中讀寫資料

2021-08-29 20:27:36 字數 951 閱讀 9008

from io import stringio

## 建立_io.stringio記憶體緩衝器物件f

f = stringio()

## 往f中寫入字串資料,並返回字串的長度

f.write('hello') # 結果:5

f.write(' ') # 結果:1

f.write('world!') # 結果:6

##提取物件f中的全部內容

f.getvalue() # 結果:hello world!

## 要讀取stringio,可以用乙個str初始化stringio,然後,像讀檔案一樣讀取:

f1 = stringio('hello!\nhi!\ngoodbye!')

while true:

s = f1.readline()

if s == '':

break

print(s.strip())

結果:hello!

hi!goodbye!

如果要操作二進位制資料,就需要使用bytesio。bytesio實現了在記憶體中讀寫bytes,我們建立乙個bytesio,然後寫入一些bytes:

from io import bytesio

## 建立bytesio()物件

f = bytesio()

## 往f中寫入bytes資料

f.write('中文'.encode('utf-8'))

print(f.getvalue())

## 和stringio類似,可以用乙個bytes初始化bytesio,然後,像讀檔案一樣讀取:

f1 = bytesio(b'\xe4\xb8\xad\xe6\x96\x87')

f1.read() # 結果:b'\xe4\xb8\xad\xe6\x96\x87'

關於檔案在記憶體中讀寫的問題

這兩天遇到乙個算不上bug的問題,主要涉及到檔案的讀寫。資料庫表中有大量資料,可能不停的寫入資料,又要從該表中讀取未讀取的資料,所以每次從表中讀取完資料,將最後一條資料的id寫入到乙個檔案中,這樣下次讀取資料不需要從表的開頭讀取,可以永久的儲存記錄。下面是乙個測試程式 int count 0 whi...

資料在記憶體中的儲存

身為乙個天天處理資料的人,不得不說資料在記憶體中的儲存是必須要知道的問題。首先,資料在記憶體中的儲存涉及到作用域,儲存位置等方面的問題。根據資料的作用域,可將資料劃分為區域性變數和全域性變數 區域性變數的作用域為從定義開始到函式執行結束 全域性變數的作用域從程式開始到程式結束。計算機的記憶體分配可以...

資料在記憶體中的儲存

大端,把乙個數字高位位元組序的內容儲存到低位址,低位位元組序內容儲存到高位址處 小端,把乙個數字高位位元組序的內容儲存到高位址,低位位元組序內容儲存到低位址處 判斷乙個機器是大端還是小端?指標判斷 int checksys 聯合體 共用體 union un int main 這裡首先需要知道的是,例...