在檔案中儲存 Python 物件 轉換

2021-09-14 05:08:41 字數 1410 閱讀 1410

把多種python物件寫入乙個文字檔案的各行

!!要使用轉換工具把物件轉成字串,文字資料在指令碼中一定是字串,而寫入方法不會自動地做任何到字串的格式轉換工作。

x,y,z = 43, 44, 45

s = 'spam' #必須是字串才能儲存在檔案中

d =

l = [1, 2, 3]

f = open('datafile.txt', 'w') #建立輸出檔案

f.write(s + '\n')

f.write('%s,'%s,'%s\n' % (x, y, z)) #將數字轉換為字串

f.write(str(l) + '¥' + str(d) + '\n')

f.close()

建立好檔案後,就可以通過開啟和讀取字串來檢視檔案的內容

!!互動式顯示給出了直接的位元組內容,而print操作則會解釋內嵌的換行符,從而按照使用者友好的方式展示結果

>>>chars = open('datafile.txt).read()   #原始字串顯示

>>>chars

''spam\n43, 44, 45\n[1, 2, 3]$\n''

>>>print(chars)

spam

43, 44, 45

[1, 2, 3]$

把文字檔案中的字串轉換為真正的python物件

如果需要使用索引、加法等普通物件工具(python不會自動把字串轉換成數字)

>>>f = open('datafile.txt')

>>>line = f.readline()

>>>line

'spam\n'

>>>line.rstrip() #用字串的rstrip方法去掉多餘的換行符

'spam'

現讀取了包含字串的行,再讀取包含數字的下一行並解析出該行中的物件

>>>line = f.readline()

>>>line

'43,44,45\n'

>>>parts = line.split(', ')

>>>parts

['43', '44', '45\n']

用字串的split方法,從逗號分隔符的地方將整行斷開,得到的結果是含有各個數字的子字串列表

為做數字運算,將字串轉換為整數:

>>>int(parts[1])

44>>>numbers = [int(p) for p in parts]

>>>numbers

[43, 44, 45]

int能夠把數字字串轉換為整數物件

在map中儲存struct,及map的檔案輸入輸出

自己寫的 因為我記憶力差的驚人,所以一方面以後我用到這個 直接複製貼上反正會忘,就不費力記了。另一方面,看到國內很多這樣現成的例子少,所以方便大家。用函式的方法實現 從map輸出到檔案,map的value是struct include include include include using na...

資料在堆疊中儲存方式

一 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注malloc,calloc,new申請的...

在table中儲存nil值

在table中,nil不可以作為key,否則會有執行報錯 而且,有時候使用 獲取長度時,會因為nil而導致無法獲取到正確的長度 如下,有乙個函式,它是用來把引數進行反序,使用 獲取長度,但是長度出現了問題 function reverse local t for i 1,t 2 do local j...