Python電子教案71文件和數(shù)據(jù)格式化_第1頁(yè)
Python電子教案71文件和數(shù)據(jù)格式化_第2頁(yè)
Python電子教案71文件和數(shù)據(jù)格式化_第3頁(yè)
Python電子教案71文件和數(shù)據(jù)格式化_第4頁(yè)
Python電子教案71文件和數(shù)據(jù)格式化_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.1Python語(yǔ)言程序設(shè)計(jì).2第7章 文件和數(shù)據(jù)格式化.3文件的使用.4文件概述文件是一個(gè)存儲(chǔ)在輔助存儲(chǔ)器上的數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容。概念上,文件是數(shù)據(jù)的集合和抽象,類似地,函數(shù)是程序的集合和抽象。用文件形式組織和表達(dá)數(shù)據(jù)更有效也更為靈活。文件包括兩種類型:文本文件和二進(jìn)制文件。.5文件概述二進(jìn)制文件直接由比特0和比特1組成,沒(méi)有統(tǒng)一字符編碼,文件內(nèi)部數(shù)據(jù)的組織格式與文件用途有關(guān)。二進(jìn)制文件和文本文件最主要的區(qū)別在于是否有統(tǒng)一的字符編碼無(wú)論文件創(chuàng)建為文本文件或者二進(jìn)制文件,都可以用“文本文件方式”和“二進(jìn)制文件方式”打開(kāi),打開(kāi)后的操作不同。.6文件概述微實(shí)例微實(shí)例7.1:理解文本文件

2、和二進(jìn)制文件的區(qū)別。:理解文本文件和二進(jìn)制文件的區(qū)別。.7文件概述輸出結(jié)果為:采用文本方式讀入文件,文件經(jīng)過(guò)編碼形成字符串,打印出有含義的字符;采用二進(jìn)制方式打開(kāi)文件,文件被解析為字節(jié)(byte)流。由于存在編碼,字符串中的一個(gè)字符由2個(gè)字節(jié)表示。.8文件的打開(kāi)關(guān)閉Python對(duì)文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟,即“打開(kāi)-操作-關(guān)閉”.9文件的打開(kāi)關(guān)閉Python通過(guò)解釋器內(nèi)置的open()函數(shù)打開(kāi)一個(gè)文件,并實(shí)現(xiàn)該文件與一個(gè)程序變量的關(guān)聯(lián),open()函數(shù)格式如下: = open(, ) open()函數(shù)有兩個(gè)參數(shù):文件名和打開(kāi)模式。文件名可以是文件的實(shí)際名字,也可以是包含完整路徑的名

3、字 .10文件的打開(kāi)關(guān)閉open()函數(shù)提供7種基本的打開(kāi)模式.11文件的讀寫根據(jù)打開(kāi)方式不同可以對(duì)文件進(jìn)行相應(yīng)的讀寫操作,Python提供4個(gè)常用的文件內(nèi)容讀取方法 .12文件的讀寫微實(shí)例微實(shí)例7.2:文本文件逐行打印:文本文件逐行打印.13文件的讀寫遍歷文件的所有行可以直接這樣完成 .14文件的讀寫如果程序需要逐行處理文件內(nèi)容,建議采用上述代碼格式:fo = open(fname, r)for line in fo: # 處理一行數(shù)據(jù)fo.close().15文件的讀寫Python提供3個(gè)與文件內(nèi)容寫入有關(guān)的方法,如表所示。.16文件的讀寫程序執(zhí)行結(jié)果如下:.17PIL庫(kù)的使用.18PIL

4、庫(kù)概述PIL(Python Image Library)庫(kù)是Python語(yǔ)言的第三方庫(kù),需要通過(guò)pip工具安裝。PIL庫(kù)支持圖像存儲(chǔ)、顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對(duì)圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字等操作。.19PIL庫(kù)概述PIL庫(kù)可以完成圖像歸檔和圖像處理兩方面功能需求:圖像歸檔:對(duì)圖像進(jìn)行批處理、生成圖像預(yù)覽、圖像格式轉(zhuǎn)換等;圖像處理:圖像基本處理、像素處理、顏色處理等。.20PIL庫(kù)Image類解析在PIL中,任何一個(gè)圖像文件都可以用Image對(duì)象表示Image類的圖像讀取和創(chuàng)建方法。.21PIL庫(kù)Image類解析要加載一個(gè)圖像文件,最簡(jiǎn)單的形式如下

5、,之后所有操作對(duì)im起作用 .22PIL庫(kù)Image類解析Image類有4個(gè)處理圖片的常用屬性 .23PIL庫(kù)Image類解析微實(shí)例微實(shí)例7.1:GIF文件圖像提取。文件圖像提取。對(duì)一個(gè)GIF格式動(dòng)態(tài)文件,提取其中各幀圖像,并保存為文件。.24PIL庫(kù)Image類解析Image類的圖像轉(zhuǎn)換和保存方法如表所示。.25PIL庫(kù)Image類解析生成birdnest.jpg圖像的縮略圖,其中(128,128)是縮略圖的尺寸。北京鳥(niǎo)巢圖片及其縮略圖.26PIL庫(kù)Image類解析Image類可以縮放和旋轉(zhuǎn)圖像,其中,rotate()方法以逆時(shí)針旋轉(zhuǎn)的角度值作為參數(shù)來(lái)旋轉(zhuǎn)圖像。.27PIL庫(kù)Image類解析

6、Image類能夠?qū)γ總€(gè)像素點(diǎn)或者一幅RGB圖像的每個(gè)通道單獨(dú)進(jìn)行操作,split()方法能夠?qū)GB圖像各顏色通道提取出來(lái),merge()方法能夠?qū)⒏鳘?dú)立通道再合成一幅新的圖像。.28PIL庫(kù)Image類解析微實(shí)例微實(shí)例7.2:圖像的顏色交換。:圖像的顏色交換。 交換圖像中的顏色。可以通過(guò)分離RGB圖片的三個(gè)顏色通道實(shí)現(xiàn)顏色交換.29PIL庫(kù)Image類解析被改變顏色的北京鳥(niǎo)巢圖片被改變顏色的北京鳥(niǎo)巢圖片 .30PIL庫(kù)Image類解析 操作圖像的每個(gè)像素點(diǎn)需要通過(guò)函數(shù)實(shí)現(xiàn),采用lambda函數(shù)和point()方法搭配使用,例子如下.31PIL庫(kù)Image類解析去掉光線的北京鳥(niǎo)巢圖片 .32圖

7、像的過(guò)濾和增強(qiáng)PIL庫(kù)的ImageFilter類和ImageEnhance類提供了過(guò)濾圖像和增強(qiáng)圖像的方法,共10種.33圖像的過(guò)濾和增強(qiáng)利用Image類的filter()方法可以使用ImageFilter類,如下: Image.filter(ImageFilter.fuction) 微實(shí)例微實(shí)例7.3:圖像的輪廓獲取。:圖像的輪廓獲取。獲取圖像的輪廓,北京鳥(niǎo)巢變得更加抽象、更具想象空間!.34圖像的過(guò)濾和增強(qiáng)北京鳥(niǎo)巢圖片的輪廓效果北京鳥(niǎo)巢圖片的輪廓效果 .35圖像的過(guò)濾和增強(qiáng)ImageEnhance類提供了更高級(jí)的圖像增強(qiáng)需求,它提供調(diào)整色彩度、亮度、對(duì)比度、銳化等功能。.36圖像的過(guò)濾和增

8、強(qiáng)微實(shí)例微實(shí)例7.4:圖像的對(duì)比度增強(qiáng)。:圖像的對(duì)比度增強(qiáng)。增強(qiáng)圖像的對(duì)比度為初始的20倍。.37圖像的過(guò)濾和增強(qiáng)北京鳥(niǎo)巢圖片的20倍對(duì)比度增強(qiáng)效果 .38圖像字符畫(huà)繪制.39圖像字符畫(huà)繪制位圖圖片是由不同顏色像素點(diǎn)組成的規(guī)則分布,如果采用字符串代替像素,圖像就成為了字符畫(huà)。定義一個(gè)字符集,將這個(gè)字符集替代圖像中的像素點(diǎn)。.40圖像字符畫(huà)繪制定義彩色向灰度的轉(zhuǎn)換公式如下,其中R、G、B分別是像素點(diǎn)的RGB顏色值: Gray = R * 0.2126 + G * 0.7152 + B * 0.0722因此,像素的RGB顏色值與字符集的對(duì)應(yīng)函數(shù)如下:.41.42圖像字符畫(huà)繪制.43一二維數(shù)據(jù)格式化

9、和處理.44數(shù)據(jù)組織的維度一維數(shù)據(jù)由對(duì)等關(guān)系的有序或無(wú)序數(shù)據(jù)構(gòu)成,采用線性方式組織,對(duì)應(yīng)于數(shù)學(xué)中的數(shù)組和集合等概念。.45數(shù)據(jù)組織的維度二維數(shù)據(jù),也稱表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,采用表格方式組織,對(duì)應(yīng)于數(shù)學(xué)中的矩陣,常見(jiàn)的表格都屬于二維數(shù)據(jù)。環(huán)比:上月=100;同比:上年同月=100;定基:2015年=100。.46數(shù)據(jù)組織的維度 高維數(shù)據(jù)由鍵值對(duì)類型的數(shù)據(jù)構(gòu)成,采用對(duì)象方式組織,屬于整合度更好的數(shù)據(jù)組織方式。高維數(shù)據(jù)在網(wǎng)絡(luò)系統(tǒng)中十分常用,HTML、XML、JSON等都是高維數(shù)據(jù)組織的語(yǔ)法結(jié)構(gòu)。.47數(shù)據(jù)組織的維度.48一二維數(shù)據(jù)的存儲(chǔ)格式一維數(shù)據(jù)是最簡(jiǎn)單的數(shù)據(jù)組織類型,有多種存儲(chǔ)格式,常用

10、特殊字符分隔:(1)用一個(gè)或多個(gè)空格分隔,例如:中國(guó) 美國(guó) 日本 德國(guó) 法國(guó) 英國(guó) 意大利(2)用逗號(hào)分隔,例如:中國(guó),美國(guó),日本,德國(guó),法國(guó),英國(guó),意大利(3)用其他符號(hào)或符號(hào)組合分隔,建議采用不出現(xiàn)在數(shù)據(jù)中的特殊符號(hào)中國(guó); 美國(guó); 日本; 德國(guó); 法國(guó); 英國(guó); 意大利.49一二維數(shù)據(jù)的存儲(chǔ)格式逗號(hào)分割數(shù)值的存儲(chǔ)格式叫做CSV格式(Comma-Separated Values,即逗號(hào)分隔值),它是一種通用的、相對(duì)簡(jiǎn)單的文件格式,在商業(yè)和科學(xué)上廣泛應(yīng)用,尤其應(yīng)用在程序之間轉(zhuǎn)移表格數(shù)據(jù)。.50一二維數(shù)據(jù)的存儲(chǔ)格式該格式的應(yīng)用有一些基本規(guī)則,如下:(1)純文本格式,通過(guò)單一編碼表示字符;(2)以

11、行為單位,開(kāi)頭不留空行,行之間沒(méi)有空行;(3)每行表示一個(gè)一維數(shù)據(jù),多行表示二維數(shù)據(jù);(4)以逗號(hào)分隔每列數(shù)據(jù),列數(shù)據(jù)為空也要保留逗號(hào);(5)可以包含或不包含列名,包含時(shí)列名放置在文件第一行。.51一二維數(shù)據(jù)的存儲(chǔ)格式 二維數(shù)據(jù)采用CSV存儲(chǔ)后的內(nèi)容如下: CSV格式存儲(chǔ)的文件一般采用.csv為擴(kuò)展名,可以通過(guò)Windows平臺(tái)上的記事本或微軟Office Excel工具打開(kāi),也可以在其他操作系統(tǒng)平臺(tái)上用文本編輯工具打開(kāi)。.52一二維數(shù)據(jù)的表示和讀寫CSV文件的每一行是一維數(shù)據(jù),可以使用Python中的列表類型表示,整個(gè)CSV文件是一個(gè)二維數(shù)據(jù),由表示每一行的列表類型作為元素,組成一個(gè)二維列表

12、。.53一二維數(shù)據(jù)的表示和讀寫微實(shí)例7.5:導(dǎo)入CSV格式數(shù)據(jù)到列表 .54一二維數(shù)據(jù)的表示和讀寫需要注意,以split(,)方法從CSV文件中獲得內(nèi)容時(shí),每行最后一個(gè)元素后面包含了一個(gè)換行符(n)。對(duì)于數(shù)據(jù)的表達(dá)和使用來(lái)說(shuō),這個(gè)換行符是多余的,可以通過(guò)使用字符串的replace()方法將其去掉,如第4行。.55一二維數(shù)據(jù)的表示和讀寫微實(shí)例微實(shí)例7.6:逐行處理:逐行處理CSV格式數(shù)據(jù)。格式數(shù)據(jù)。.56一二維數(shù)據(jù)的表示和讀寫運(yùn)行后的輸出結(jié)果如下:.57一二維數(shù)據(jù)的表示和讀寫 微實(shí)例微實(shí)例7.7:一維數(shù)據(jù)寫入:一維數(shù)據(jù)寫入CSV文件。文件。.58一二維數(shù)據(jù)的表示和讀寫對(duì)于列表中存儲(chǔ)的二維數(shù)據(jù),可

13、以通過(guò)循環(huán)寫入一維數(shù)據(jù)的方式寫入CSV文件,參考代碼樣式如下:for row in ls: .write(,.join(row)+n).59一二維數(shù)據(jù)的表示和讀寫微實(shí)例微實(shí)例7.8:二維數(shù)據(jù)寫入:二維數(shù)據(jù)寫入CSV文件。文件。城市,環(huán)比,同比,定基北京,1.0%,1.2%,1.2%上海,1.0%,1.3%,1.3%廣州,1.0%,1.2%,1.2%深圳,1.0%,1.4%,1.5%沈陽(yáng),1.0%,1.0%,1.0%.60一二維數(shù)據(jù)的表示和讀寫.61CSV格式的HTML展示.62CSV格式的HTML展示.63.64CSV格式的HTML展示.65CSV格式的HTML展示.66高維數(shù)據(jù)的格式化.67

14、高維數(shù)據(jù)的格式化與一維二維數(shù)據(jù)不同,高維數(shù)據(jù)能展示數(shù)據(jù)間更為復(fù)雜的組織關(guān)系。為了保持靈活性,表示高維數(shù)據(jù)不采用任何結(jié)構(gòu)形式,僅采用最基本的二元關(guān)系,即鍵值對(duì)。萬(wàn)維網(wǎng)是高維數(shù)據(jù)最成功的典型應(yīng)用。JSON格式可以對(duì)高維數(shù)據(jù)進(jìn)行表達(dá)和存儲(chǔ)。JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和理解。JSON格式表達(dá)鍵值對(duì)的基本格式如下,鍵值對(duì)都保存在雙引號(hào)中:key : value.68高維數(shù)據(jù)的格式化當(dāng)多個(gè)鍵值對(duì)放在一起時(shí),JSON有如下一些約定:數(shù)據(jù)保存在鍵值對(duì)中;鍵值對(duì)之間由逗號(hào)分隔;括號(hào)用于保存鍵值對(duì)數(shù)據(jù)組成的對(duì)象;方括號(hào)用于保存鍵值對(duì)數(shù)據(jù)組成的數(shù)組。以“本書(shū)作者”JSON數(shù)據(jù)為例。.69高維數(shù)據(jù)的格式化.70json庫(kù)的使用.71Json庫(kù)的概述n json庫(kù)主要包括兩類函數(shù):操作類函數(shù)和解析類函數(shù) 操作類函數(shù)主要完成外部JSON格式和程序內(nèi)部數(shù)據(jù)類型之間的轉(zhuǎn)換功能 解析類函數(shù)主要用于解析鍵值對(duì)內(nèi)容。.72Json庫(kù)的解析dumps()和loads()分別對(duì)應(yīng)編碼和解碼功能。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論