第27課 Python檔案的格式化寫入

2021-07-26 00:19:00 字數 1830 閱讀 2422

1.格式化寫檔案

如果想寫入文字檔案的資料最終在檔案裡以下面的形式展示出來,需要在呼叫write函式時使用格式化控制字來格式化寫入字串。

下面的資料表現出資料是右對齊,且每列資料間有製表位。第一行是欄位名,從第二行起是一條條的資料,和excel唯一的區別是沒有邊框。

name   age     ***

keke    24     male

zoe     24      female

sensen   56   female

lili    24     female

yizu    24     female

#coding:utf-8

fn = "wformat.txt"

fw = open(fn, 'w')

fw.write("%10s\t %3s\t %6s\n"%("name", "age", '***'))

fw.write("%10s\t %3d\t %6s\n"%("lwk", 56, 'male'))

fw.write("%10s\t %3d\t %6s\n"%("lwk", 56, 'male'))

fw.write("%10s\t %3d\t %6s\n"%("lwk", 56, 'male'))

fw.write("%10s\t %3d\t %6s\n"%("lli", 56, 'male'))

fw.write("%10s\t %3d\t %6s\n"%("lwk", 56, 'female'))

fw.close()

2.split格式化資料

在格式化寫入章節裡,通過格式化控制字寫入的資料如何讀回呢?

name   age        ***

lwk    56       male

lwk    56       male

lwk    56       male

lli    56       male

lwk    56     female

上邊資料每一行是一條記錄,讀回時可以把整行當作乙個資料,當有的時候我們想最好這是程式設計三個單獨的資料分別儲存當前行的姓名、年齡和性別資料。可以用split函式來把這一行字串分割成三個資料項。

fr = open("wformat.txt",'r')

line1 = fr.readline()

print line1

line2 = fr.readline()

print line2

print line2.split('\t')

fw.close()

輸出結果如下:

name   age        ***

lwk    56       male

['       lwk', '  56', '   male\n']

輸出的結果很詭異!好像有多餘的空行?

fr = open("wformat.txt",'r')

line1 = fr.readline().strip().strip('\n')

print line1

line2 = fr.readline().strip().strip('\n')

print line2

print line2.split('\t')

fw.close()

輸出結果如下:

name     age        ***

lwk   56       male

['lwk', '  56', '   male']

漂亮多了,呵呵。思考一下strip()和strip(』 ∖ n』)能換一下位置麼?

《笨辦法學Python》 第27課手記

本節課講邏輯運算 即布林運算 對於學過數位電路或者離散數學的人來說非常簡單,甚至不需要去刻意記憶真值表。邏輯運算只有兩個值,true或者false,表示兩種完全對立的狀態。我們可以用電路的通斷或者電壓的高低來表示這兩種狀態,因此在數位電路和計算機晶元中非常容易實現。我們把這種運算稱為布林運算,就是為...

《笨辦法學Python》 第27課手記

本節課講邏輯運算 即布林運算 對於學過數位電路或者離散數學的人來說非常簡單,甚至不需要去刻意記憶真值表。邏輯運算只有兩個值,true或者false,表示兩種完全對立的狀態。我們可以用電路的通斷或者電壓的高低來表示這兩種狀態,因此在數位電路和計算機晶元中非常容易實現。我們把這種運算稱為布林運算,就是為...

Python基礎第27天

一 bom物件 瀏覽器物件模型,可以對瀏覽器進行訪問和操作 alert 顯示帶有一段訊息和乙個確認按鈕的警告框。confirm 顯示帶有一段訊息以及確認按鈕和取消按鈕的對話方塊。prompt 顯示可提示使用者輸入的對話方塊。open 開啟乙個新的瀏覽器視窗或查詢乙個已命名的視窗。close 關閉瀏覽...