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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、Image類能夠對每個像素點或者一幅RGB圖像的每個通道單獨進行操作,split()方法能夠將RGB圖像各顏色通道提取出來,merge()方法能夠將各獨立通道再合成一幅新的圖像。.28PIL庫Image類解析微實例微實例7.2:圖像的顏色交換。:圖像的顏色交換。 交換圖像中的顏色??梢酝ㄟ^分離RGB圖片的三個顏色通道實現顏色交換.29PIL庫Image類解析被改變顏色的北京鳥巢圖片被改變顏色的北京鳥巢圖片 .30PIL庫Image類解析 操作圖像的每個像素點需要通過函數實現,采用lambda函數和point()方法搭配使用,例子如下.31PIL庫Image類解析去掉光線的北京鳥巢圖片 .32圖

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

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

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

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

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

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

13、以通過循環(huán)寫入一維數據的方式寫入CSV文件,參考代碼樣式如下:for row in ls: .write(,.join(row)+n).59一二維數據的表示和讀寫微實例微實例7.8:二維數據寫入:二維數據寫入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%沈陽,1.0%,1.0%,1.0%.60一二維數據的表示和讀寫.61CSV格式的HTML展示.62CSV格式的HTML展示.63.64CSV格式的HTML展示.65CSV格式的HTML展示.66高維數據的格式化.67

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

溫馨提示

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

評論

0/150

提交評論