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)行處理>