第七章:文件和數(shù)據(jù)格式化

1.文件的使用:文件打開(kāi)、關(guān)閉和讀寫(xiě)

1.文件
文件是存儲(chǔ)在輔助存儲(chǔ)器上的一組數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容朴沿。概念上,文件是數(shù)據(jù)的集合和抽象败砂。文件包括兩種類型:文本文件和二進(jìn)制文件赌渣。
2.文件的類型
1)、文本文件一般由單一特定編碼的字符組成,如UTF-8編碼,內(nèi)容容易統(tǒng)一展示和閱讀昌犹。
2)坚芜、二進(jìn)制文件直接由比特0和比特1組成,文件內(nèi)部數(shù)據(jù)的組織格式與文件用途有關(guān)。二進(jìn)制是信息 按照非字符但特定格式形成的文件,例如,png格式的圖片文件斜姥、avi格式的視頻文件鸿竖。
3)、二進(jìn)制文件和文本文件最主要的區(qū)別在于是否有統(tǒng)一的字符編碼铸敏。
4)缚忧、無(wú)論文件創(chuàng)建為文本文件或者二進(jìn)制文件,都可以用“文本文件方式”和“二進(jìn)制文件方式”打開(kāi),但打開(kāi)后的操作不同。

采用文本方式讀入文件,文件經(jīng)過(guò)編碼形成字符串,打印出有含義的字符;采用二進(jìn)制方式打開(kāi)文件,文件被解析為字節(jié)流杈笔。
3.文件的打開(kāi)和關(guān)閉
1闪水、Python對(duì)文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟,即“打開(kāi)-操作-關(guān)閉”



2、Python通過(guò)open()函數(shù)打開(kāi)一個(gè)文件,并返回一個(gè)操作這個(gè)文
件的變量,語(yǔ)法形式如下:

<變量名>=open(<文件路徑及文件名>,<打開(kāi)模式>)

4.文件的讀取
1蒙具、通過(guò)以下幾種方式可以讀取文件指定的內(nèi)容球榆。


f.seek(offset,whence)方法能夠移動(dòng)讀取指針的位置朽肥。

offset:開(kāi)始的偏移量,也就是代表需要移動(dòng)偏移的字節(jié)數(shù),如果是負(fù)數(shù)表示從倒數(shù)第幾位開(kāi)始。
whence:可選,默認(rèn)值為0持钉。給offset定義一個(gè)參數(shù),表示要從哪個(gè)位置開(kāi)始偏移;0代表從文件開(kāi)頭開(kāi)始算起,1代表從當(dāng)前位置開(kāi)始算起,2代表從文件未尾算起衡招。
5.文件的寫(xiě)入

通過(guò)以下方法可以將數(shù)據(jù)寫(xiě)入指定的文件

2.數(shù)據(jù)組織的維度:一維數(shù)據(jù)和二維數(shù)據(jù)

數(shù)據(jù)的組織維度
一組數(shù)據(jù)在被計(jì)算機(jī)處理前需要進(jìn)行一定的組織,表明數(shù)據(jù)之間的基本關(guān)系和邏輯,進(jìn)而形成“數(shù)據(jù)的維度”。根據(jù)數(shù)據(jù)的關(guān)系不同,數(shù)據(jù)組織可以分為:一維數(shù)據(jù)右钾、二維數(shù)據(jù)和高維數(shù)據(jù)蚁吝。
一維數(shù)據(jù)的存儲(chǔ)
一維數(shù)據(jù)是最簡(jiǎn)單的數(shù)據(jù)組織類型,由于是線性結(jié)構(gòu),在Python語(yǔ)言中主要采用列表形式表示。

3.一維數(shù)據(jù)的處理:表示舀射、存儲(chǔ)和處理

一維數(shù)據(jù)的文件存儲(chǔ)有多種方式,總體思路是采用特殊字符分隔各數(shù)據(jù)。常用存儲(chǔ)方法包括4種怀伦。
(1)采用空格分隔元素,例如:北京 上海 天津 重慶
(2)采用逗號(hào)分隔元素,例如:北京,上海,天津,重慶
(3)采用換行分隔包括,例如:
北京
上海
天津
重慶
(4)其他特殊符號(hào)分隔,以分號(hào)分隔為例,例如:北京;上海;天津;重慶
1脆烟、逗號(hào)分割的存儲(chǔ)格式叫做CSV格式(Comma-Separated Values,即逗號(hào)分隔值),它是一種通用的、相對(duì)簡(jiǎn)單的文件格式,在商業(yè)和科學(xué)上廣泛應(yīng)用,大部分編輯器都支持直接讀入或保存文件為CSV格式
2房待、列表對(duì)象輸出為CSV格式文方法如下,采用字符串的join()方法最為方便邢羔。

s=['北京’,’上海’,’天津’,’重慶’]
f = open('city. csv', 'w' )
f.write(','.join(1s)+'\n')
f. close ()

3桑孩、對(duì)一維數(shù)據(jù)進(jìn)行處理首先需要從CSV格式文件讀入一維數(shù)據(jù),并將其表示為列表對(duì)象拜鹤。

f = open('city.csv','r')
ls = f. read (). strip('\n'). split (',')
print (1s)
f. close ()

4.二維數(shù)據(jù)的處理:表示、存儲(chǔ)和處理

2.二維數(shù)據(jù)的存儲(chǔ)

二維數(shù)據(jù)

s = [
[’學(xué)辛鹘罚’,’報(bào)考人數(shù)’,’往年錄取人數(shù)’,’理科人數(shù)’],
['xx中學(xué)’,’100',’60',’60'],
['xx實(shí)驗(yàn)中學(xué)’,’150',’30',’80'],
['xx高級(jí)中學(xué)’,’200',’140',’160']
]

1敏簿、二維數(shù)據(jù)由一維數(shù)據(jù)組成,用CSV格式文件存儲(chǔ)。CSV文件的每一行是一維數(shù)據(jù),整個(gè)CSV文件是一個(gè)二維數(shù)據(jù)宣虾。
2惯裕、二維列表對(duì)象輸出為CSV格式文件方法如下,采用遍歷循環(huán)和字符串的
join()方法相結(jié)合。

1s = [
 ['學(xué)行逑酰’,’報(bào)考人數(shù)’,’往年錄取人數(shù)’,’理科人數(shù)’],
 ['xx實(shí)驗(yàn)中學(xué)’,’100',’60',’60'],
 ['xx中學(xué)’,’150',’30',’80'],
 ['xx高級(jí)中學(xué)’,’200',’140',’160']
 ]
f=open('school.csv','w')
for row in 1s:
    f.write(','.join(row)+'\n')
f. close ()

二維數(shù)據(jù)處理等同于二維列表的操作,與一維列表不同,二維列表一般需要借助循環(huán)遍歷實(shí)現(xiàn)對(duì)每個(gè)數(shù)據(jù)的處理,基本代碼格式如下:

for row in Is:
    for item in row:
        <對(duì)第row行第item列元素進(jìn)行處理>

5.采用CVS格式對(duì)一二維數(shù)據(jù)文件的讀寫(xiě)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜻势,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鹉胖,更是在濱河造成了極大的恐慌握玛,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甫菠,死亡現(xiàn)場(chǎng)離奇詭異挠铲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)淑蔚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)市殷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人刹衫,你說(shuō)我怎么就攤上這事醋寝「阏酰” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵音羞,是天一觀的道長(zhǎng)囱桨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嗅绰,這世上最難降的妖魔是什么舍肠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮窘面,結(jié)果婚禮上翠语,老公的妹妹穿的比我還像新娘。我一直安慰自己财边,他們只是感情好肌括,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著酣难,像睡著了一般谍夭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上憨募,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天紧索,我揣著相機(jī)與錄音,去河邊找鬼菜谣。 笑死珠漂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的葛菇。 我是一名探鬼主播甘磨,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼眯停!你這毒婦竟也來(lái)了济舆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤莺债,失蹤者是張志新(化名)和其女友劉穎滋觉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體齐邦,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椎侠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了措拇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片我纪。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浅悉,到底是詐尸還是另有隱情趟据,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布术健,位于F島的核電站汹碱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荞估。R本人自食惡果不足惜咳促,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勘伺。 院中可真熱鬧跪腹,春花似錦、人聲如沸娇昙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冒掌。三九已至,卻和暖如春蹲盘,著一層夾襖步出監(jiān)牢的瞬間股毫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工召衔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铃诬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓苍凛,卻偏偏與公主長(zhǎng)得像趣席,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子醇蝴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容