




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Python語(yǔ)言程序設(shè)計(jì)第7章 文件和數(shù)據(jù)格式化文件的使用數(shù)據(jù)源文件概述文件是一個(gè)存儲(chǔ)在輔助存儲(chǔ)器上的數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容。概念上,文件是數(shù)據(jù)的集合和抽象,類似地,函數(shù)是程序的集合和抽象。用文件形式組織和表達(dá)數(shù)據(jù)更有效也更為靈活。文件包括兩種類型:文本文件和二進(jìn)制文件。文件概述二進(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)后的操作不同。文件概述微實(shí)例微實(shí)例7.1:理解文本文件和二進(jìn)制文件的區(qū)別
2、。:理解文本文件和二進(jìn)制文件的區(qū)別。微實(shí)例7.1m7.1DiffTextBin.py 123456textFile=open(7.1.txt,rt)#t表示文本文件方式表示文本文件方式print(textFile.readline()textFile.close()binFile=open(7-1.txt,rb)#r表示二進(jìn)制文件方式表示二進(jìn)制文件方式print(binFile.readline()binFile.close()文件概述輸出結(jié)果為:中國(guó)是個(gè)偉大的國(guó)家!bxd6xd0 xb9xfaxcaxc7xb8xf6xcexb0 xb4xf3xb5xc4xb9xfaxbcxd2xa3xa1采
3、用文本方式讀入文件,文件經(jīng)過(guò)編碼形成字符串,打印出有含義的字符;采用二進(jìn)制方式打開(kāi)文件,文件被解析為字節(jié)(byte)流。由于存在編碼,字符串中的一個(gè)字符由2個(gè)字節(jié)表示。文件的打開(kāi)關(guān)閉Python對(duì)文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟,即“打開(kāi)-操作-關(guān)閉”文件的打開(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í)際名字,也可以是包含完整路徑的名字 文件的打開(kāi)關(guān)閉open()函數(shù)提供7種基本的打開(kāi)模式打開(kāi)模式含義r只讀模式,如果文件
4、不存在,返回異常FileNotFoundError,默認(rèn)值w覆蓋寫模式,文件不存在則創(chuàng)建,存在則完全覆蓋源文件x創(chuàng)建寫模式,文件不存在則創(chuàng)建,存在則返回異常FileExistsErrora追加寫模式,文件不存在則創(chuàng)建,存在則在原文件最后追加內(nèi)容b二進(jìn)制文件模式t文本文件模式,默認(rèn)值+與r/w/x/a一同使用,在原功能基礎(chǔ)上增加同時(shí)讀寫功能文件的讀寫根據(jù)打開(kāi)方式不同可以對(duì)文件進(jìn)行相應(yīng)的讀寫操作,Python提供4個(gè)常用的文件內(nèi)容讀取方法 方法含義.readall()讀入整個(gè)文件內(nèi)容,返回一個(gè)字符串或字節(jié)流*.read(size=-1)從文件中讀入整個(gè)文件內(nèi)容,如果給出參數(shù),讀入前size長(zhǎng)度的字
5、符串或字節(jié)流.readline(size = -1)從文件中讀入一行內(nèi)容,如果給出參數(shù),讀入該行前size長(zhǎng)度的字符串或字節(jié)流.readlines(hint=-1)從文件中讀入所有行,以每行為元素形成一個(gè)列表,如果給出參數(shù),讀入hint行文件的讀寫微實(shí)例微實(shí)例7.2:文本文件逐行打?。何谋疚募鹦写蛴∥?shí)例7.2m7.2PrintFilebyLines.py 12345fname=input(請(qǐng)輸入要打開(kāi)的文件請(qǐng)輸入要打開(kāi)的文件:)fo=open(fname,r)forlineinfo.readlines():print(line)fo.close()文件的讀寫遍歷文件的所有行可以直接這樣完成
6、 12345fname=input(請(qǐng)輸入要打開(kāi)的文件請(qǐng)輸入要打開(kāi)的文件:)fo=open(fname,r)forlineinfo:print(line)fo.close()文件的讀寫如果程序需要逐行處理文件內(nèi)容,建議采用上述代碼格式:fo = open(fname, r)for line in fo: # 處理一行數(shù)據(jù)fo.close()文件的讀寫Python提供3個(gè)與文件內(nèi)容寫入有關(guān)的方法,如表所示。方法含義.write(s)向文件寫入一個(gè)字符串或字節(jié)流.writelines(lines)將一個(gè)元素為字符串的列表寫入文件.seek(offset)改變當(dāng)前文件操作指針的位置,offset的值
7、:0:文件開(kāi)頭; 1: 當(dāng)前位置; 2: 文件結(jié)尾文件的讀寫微實(shí)例7.3m7.3WriteListtoFile.py 1234567fname=input(請(qǐng)輸入要寫入的文件請(qǐng)輸入要寫入的文件:)fo=open(fname,w+)ls=唐詩(shī)唐詩(shī),宋詞宋詞,元曲元曲fo.writelines(ls)forlineinfo:print(line)fo.close()程序執(zhí)行結(jié)果如下:請(qǐng)輸入要寫入的文件請(qǐng)輸入要寫入的文件:test.txtPIL庫(kù)的使用PIL庫(kù)概述PIL(Python Image Library)庫(kù)是Python語(yǔ)言的第三方庫(kù),需要通過(guò)pip工具安裝。:pipinstallpillo
8、w#或者或者pip3installpillowPIL庫(kù)支持圖像存儲(chǔ)、顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對(duì)圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字等操作。PIL庫(kù)概述PIL庫(kù)可以完成圖像歸檔和圖像處理兩方面功能需求:圖像歸檔:對(duì)圖像進(jìn)行批處理、生成圖像預(yù)覽、圖像格式轉(zhuǎn)換等;圖像處理:圖像基本處理、像素處理、顏色處理等。PIL庫(kù)Image類解析在PIL中,任何一個(gè)圖像文件都可以用Image對(duì)象表示Image類的圖像讀取和創(chuàng)建方法。方法描述Image.open(filename)根據(jù)參數(shù)加載圖像文件Image.new(mode, size, color)根據(jù)給定參數(shù)創(chuàng)建一個(gè)
9、新的圖像Image.open(StringIO.StringIO(buffer)從字符串中獲取圖像Image.frombytes(mode, size, data)根據(jù)像素點(diǎn)data創(chuàng)建圖像Image.verify()對(duì)圖像文件完整性進(jìn)行檢查,返回異常PIL庫(kù)Image類解析要加載一個(gè)圖像文件,最簡(jiǎn)單的形式如下,之后所有操作對(duì)im起作用 fromPILimportImageim=Image.open(D:pycodesbirdnest.jpg)PIL庫(kù)Image類解析Image類有4個(gè)處理圖片的常用屬性 屬性描述Image.format標(biāo)識(shí)圖像格式或來(lái)源,如果圖像不是從文件讀取,值是NoneI
10、mage.mode圖像的色彩模式,L灰度圖像、RGB真彩色圖像、CMYK出版圖像Image.size圖像寬度和高度,單位是像素(px),返回值是二元元組(tuple)Image.palette調(diào)色板屬性,返回一個(gè)ImagePalette類型PIL庫(kù)Image類解析微實(shí)例7.1:GIF文件圖像提取。對(duì)一個(gè)GIF格式動(dòng)態(tài)文件,提取其中各幀圖像,并保存為文件。微實(shí)例7.1m7.1GifExtractor.py 123456789fromPILimportImageim=Image.open(pybit.gif)#讀入一個(gè)讀入一個(gè)GIF文件文件try:im.save(picframe:02d.png.
11、format(im.tell()whileTrue:im.seek(im.tell()+1)im.save(picframe:02d.png.format(im.tell()except:print(處理結(jié)束處理結(jié)束)PIL庫(kù)Image類解析Image類的圖像轉(zhuǎn)換和保存方法如表所示。方法描述Image.save(filename, format)將圖像保存為filename文件名,format是圖片格式Image.convert(mode)使用不同的參數(shù),轉(zhuǎn)換圖像為新的模式Image.thumbnail(size) 創(chuàng)建圖像的縮略圖,size是縮略圖尺寸的二元元組PIL庫(kù)Image類解析生成b
12、irdnest.jpg圖像的縮略圖,其中(128,128)是縮略圖的尺寸。im.thumbnail(128,128)im.save(birdnestTN,JPEG)北京鳥(niǎo)巢圖片及其縮略圖PIL庫(kù)Image類解析Image類可以縮放和旋轉(zhuǎn)圖像,其中,rotate()方法以逆時(shí)針旋轉(zhuǎn)的角度值作為參數(shù)來(lái)旋轉(zhuǎn)圖像。方法描述Image.resize(size)按size大小調(diào)整圖像,生成副本Image.rotate(angle)按angle角度旋轉(zhuǎn)圖像,生成副本PIL庫(kù)Image類解析Image類能夠?qū)γ總€(gè)像素點(diǎn)或者一幅RGB圖像的每個(gè)通道單獨(dú)進(jìn)行操作,split()方法能夠?qū)GB圖像各顏色通道提取出
13、來(lái),merge()方法能夠?qū)⒏鳘?dú)立通道再合成一幅新的圖像。方法描述Image.point(func)根據(jù)函數(shù)func功能對(duì)每個(gè)元素進(jìn)行運(yùn)算,返回圖像副本Image.split()提取RGB圖像的每個(gè)顏色通道,返回圖像副本Image.merge(mode,bands)合并通道 ,采用mode色彩,bands是新色的色彩通道Image.blend(im1,im2,alpha) 將兩幅圖片im1和im2按照如下公式插值后生成新的圖像:im1 * (1.0-alpha) + im2 * alphaPIL庫(kù)Image類解析微實(shí)例微實(shí)例7.2:圖像的顏色交換。:圖像的顏色交換。 交換圖像中的顏色。可以通過(guò)
14、分離RGB圖片的三個(gè)顏色通道實(shí)現(xiàn)顏色交換微實(shí)例7.2m7.1ChangeRGB.py 12345fromPILimportImageim=Image.open(birdnest.jpg)r,g,b=im.split()om=Image.merge(RGB,(b,g,r)om.save(birdnestBGR.jpg)PIL庫(kù)Image類解析被改變顏色的北京鳥(niǎo)巢圖片被改變顏色的北京鳥(niǎo)巢圖片 PIL庫(kù)Image類解析 操作圖像的每個(gè)像素點(diǎn)需要通過(guò)函數(shù)實(shí)現(xiàn),采用lambda函數(shù)和point()方法搭配使用,例子如下im=Image.open(D:pycodesbirdnest.jpg)#打開(kāi)鳥(niǎo)巢文件
15、打開(kāi)鳥(niǎo)巢文件r,g,b=im.split()#獲得獲得RGB通道數(shù)據(jù)通道數(shù)據(jù)newg=g.point(lambdai:i*0.9)#將將G通道顏色值變?yōu)樵瓉?lái)的通道顏色值變?yōu)樵瓉?lái)的0.9倍倍newb=b.point(lambdai:iom=Image.merge(im.mode,(r,newg,newb)#將將3個(gè)通道合形成新圖像個(gè)通道合形成新圖像om.save(D:pycodesbirdnestMerge.jpg)#輸出圖片輸出圖片PIL庫(kù)Image類解析去掉光線的北京鳥(niǎo)巢圖片 圖像的過(guò)濾和增強(qiáng)PIL庫(kù)的ImageFilter類和ImageEnhance類提供了過(guò)濾圖像和增強(qiáng)圖像的方法,共10
16、種方法表示描述ImageFilter.BLUR圖像的模糊效果ImageFilter.CONTOUR圖像的輪廓效果ImageFilter.DETAIL圖像的細(xì)節(jié)效果ImageFilter.EDGE_ENHANCE圖像的邊界加強(qiáng)效果ImageFilter.EDGE_ENHANCE_MORE圖像的閾值邊界加強(qiáng)效果ImageFilter.EMBOSS圖像的浮雕效果ImageFilter.FIND_EDGES圖像的邊界效果ImageFilter.SMOOTH圖像的平滑效果ImageFilter.SMOOTH_MORE圖像的閾值平滑效果ImageFilter.SHARPEN圖像的銳化效果圖像的過(guò)濾和增強(qiáng)利
17、用Image類的filter()方法可以使用ImageFilter類,如下: Image.filter(ImageFilter.fuction) 微實(shí)例7.3:圖像的輪廓獲取。獲取圖像的輪廓,北京鳥(niǎo)巢變得更加抽象、更具想象空間!圖像的過(guò)濾和增強(qiáng)微實(shí)例7.3m7.3GetImageContour.py 12345fromPILimportImagefromPILimportImageFilterim=Image.open(birdnest.jpg)om=im.filter(ImageFilter.CONTOUR)om.save(birdnestContour.jpg)北京鳥(niǎo)巢圖片的輪廓效果北京鳥(niǎo)
18、巢圖片的輪廓效果 圖像的過(guò)濾和增強(qiáng)ImageEnhance類提供了更高級(jí)的圖像增強(qiáng)需求,它提供調(diào)整色彩度、亮度、對(duì)比度、銳化等功能。方法描述ImageEnhance.enhance(factor)對(duì)選擇屬性的數(shù)值增強(qiáng)factor倍ImageEnhance.Color(im)調(diào)整圖像的顏色平衡ImageEnhance.Contrast(im)調(diào)整圖像的對(duì)比度ImageEnhance.Brightness(im)調(diào)整圖像的亮度ImageEnhance.Sharpness(im)調(diào)整圖像的銳度圖像的過(guò)濾和增強(qiáng)微實(shí)例7.4:圖像的對(duì)比度增強(qiáng)。增強(qiáng)圖像的對(duì)比度為初始的20倍。微實(shí)例7.4m7.4EnIm
19、ageContrast.py 12345fromPILimportImagefromPILimportImageEnhanceim=Image.open(birdnest.jpg)om=ImageEnhance.Contrast(im)om.enhance(20).save(birdnestEnContrast.jpg)圖像的過(guò)濾和增強(qiáng)北京鳥(niǎo)巢圖片的20倍對(duì)比度增強(qiáng)效果 圖像字符畫繪制圖像字符畫繪制位圖圖片是由不同顏色像素點(diǎn)組成的規(guī)則分布,如果采用字符串代替像素,圖像就成為了字符畫。定義一個(gè)字符集,將這個(gè)字符集替代圖像中的像素點(diǎn)。12ascii_char=list($B%8&WM#*oahkb
20、dpqwmZO0QLCJUYXzcvunxrjf1234568795t/|()1?-_+i!;:,.)圖像字符畫繪制123456defget_char(r,b,g,alpha=256):ifalpha=0:returngray=int(0.2126*r+0.7152*g+0.0722*b)unit=256/len(ascii_char)returnascii_chargray/unit定義彩色向灰度的轉(zhuǎn)換公式如下,其中R、G、B分別是像素點(diǎn)的RGB顏色值: Gray = R * 0.2126 + G * 0.7152 + B * 0.0722因此,像素的RGB顏色值與字符集的對(duì)應(yīng)函數(shù)如下:實(shí)例
21、代碼12.1e12.DrawCharImage.py 12345678910111213141516171819202122#e12.1DrawCharImage.py.pyfromPILimportImageascii_char=list($%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1?-/+i!;:,.)defget_char(r,b,g,alpha=256):ifalpha=0:returngray=int(0.2126*r+0.7152*g+0.0722*b)unit=256/len(ascii_char)returnascii_charint(
22、gray/unit)defmain():im=Image.open(pic.jpg)WIDTH,HEIGHT=100,60im=im.resize(WIDTH,HEIGHT)txt=foriinrange(HEIGHT):forjinrange(WIDTH):txt+=get_char(*im.getpixel(j,i)txt+=nfo=open(pic_char.txt,w)fo.write(txt)fo.close()main()圖像字符畫繪制一二維數(shù)據(jù)格式化和處理數(shù)據(jù)組織的維度一維數(shù)據(jù)由對(duì)等關(guān)系的有序或無(wú)序數(shù)據(jù)構(gòu)成,采用線性方式組織,對(duì)應(yīng)于數(shù)學(xué)中的數(shù)組和集合等概念。中國(guó)、美國(guó)、日本、德國(guó)
23、、法國(guó)、英國(guó)、意大利、加拿大、俄羅斯、歐盟、澳大利亞、南非、阿根廷、巴西、印度、印度尼西亞、墨西哥、沙特阿拉伯、土耳其、韓國(guó)數(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)比同比定基北京101.5120.7121.4上海101.2127.3127.8廣州101.3119.4120.0深圳102.0140.9145.5沈陽(yáng)100.1101.4101.6環(huán)比:上月=100;同比:上年同月=100;定基:2015年=100。數(shù)據(jù)組織的維度 高維數(shù)據(jù)由鍵值對(duì)類型的數(shù)據(jù)構(gòu)成,采用對(duì)象方式組織,屬于整合度更好的數(shù)據(jù)組織方式。高
24、維數(shù)據(jù)在網(wǎng)絡(luò)系統(tǒng)中十分常用,HTML、XML、JSON等都是高維數(shù)據(jù)組織的語(yǔ)法結(jié)構(gòu)。數(shù)據(jù)組織的維度本書作者 : 姓氏 : 嵩,名字 : 天,單位 : 北京理工大學(xué) , 姓氏 : 禮,名字 : 欣,單位 : 北京理工大學(xué) , 姓氏 : 黃,名字 : 天羽,單位 : 北京理工大學(xué) 一二維數(shù)據(jù)的存儲(chǔ)格式一維數(shù)據(jù)是最簡(jiǎn)單的數(shù)據(jù)組織類型,有多種存儲(chǔ)格式,常用特殊字符分隔:(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ó);
25、 法國(guó); 英國(guó); 意大利一二維數(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ù)。一二維數(shù)據(jù)的存儲(chǔ)格式該格式的應(yīng)用有一些基本規(guī)則,如下:(1)純文本格式,通過(guò)單一編碼表示字符;(2)以行為單位,開(kāi)頭不留空行,行之間沒(méi)有空行;(3)每行表示一個(gè)一維數(shù)據(jù),多行表示二維數(shù)據(jù);(4)以逗號(hào)分隔每列數(shù)據(jù),列數(shù)據(jù)為空也要保留逗號(hào);(5)可以包含或不包含列名,包含時(shí)列名放置在文件第一行。一二維數(shù)據(jù)的存儲(chǔ)格式 二維數(shù)據(jù)采用CSV存儲(chǔ)后的內(nèi)容如下: 城市,環(huán)比
26、,同比,定基北京,101.5,120.7,121.4上海,101.2,127.3,127.8廣州,101.3,119.4,120深圳,102,140.9,145.5沈陽(yáng),100.1,101.4,101.6CSV格式存儲(chǔ)的文件一般采用.csv為擴(kuò)展名,可以通過(guò)Windows平臺(tái)上的記事本或微軟Office Excel工具打開(kāi),也可以在其他操作系統(tǒng)平臺(tái)上用文本編輯工具打開(kāi)。一二維數(shù)據(jù)的表示和讀寫CSV文件的每一行是一維數(shù)據(jù),可以使用Python中的列表類型表示,整個(gè)CSV文件是一個(gè)二維數(shù)據(jù),由表示每一行的列表類型作為元素,組成一個(gè)二維列表。 城市, 環(huán)比, 同比, 定基n, 北京, 101.5,
27、120.7, 121.4n, 上海, 101.2, 127.3, 127.8n, 廣州, 101.3, 119.4, 120.0n, 深圳, 102.0, 140.9, 145.5n,沈陽(yáng), 100.1, 101.4, 101.6n, 一二維數(shù)據(jù)的表示和讀寫需要注意,以split(,)方法從CSV文件中獲得內(nèi)容時(shí),每行最后一個(gè)元素后面包含了一個(gè)換行符(n)。對(duì)于數(shù)據(jù)的表達(dá)和使用來(lái)說(shuō),這個(gè)換行符是多余的,可以通過(guò)使用字符串的replace()方法將其去掉,如第4行。一二維數(shù)據(jù)的表示和讀寫微實(shí)例微實(shí)例7.6:逐行處理:逐行處理CSV格式數(shù)據(jù)。格式數(shù)據(jù)。微實(shí)例7.6m7.6GetCSVbyLine.
28、py 12345678910fo=open(price2016.csv,r)ls=forlineinfo:line=line.replace(n,)ls=line.line.split(,)lns=forsinls:lns+=t.format(s)print(lns)fo.close()一二維數(shù)據(jù)的表示和讀寫運(yùn)行后的輸出結(jié)果如下:城市環(huán)比同比定基北京101.5120.7121.4上海101.2127.3127.8廣州101.3119.4120.0深圳102.0140.9145.5沈陽(yáng)100.1101.4101.6一二維數(shù)據(jù)的表示和讀寫 微實(shí)例微實(shí)例7.7:一維數(shù)據(jù)寫入:一維數(shù)據(jù)寫入CSV文件。
29、文件。微實(shí)例7.7m7.7WriteD1toCSV.py 1234fo=open(price2016bj.csv,w)ls=北京北京,101.5,120.7,121.4fo.write(,.join(ls)+n)fo.close()一二維數(shù)據(jù)的表示和讀寫對(duì)于列表中存儲(chǔ)的二維數(shù)據(jù),可以通過(guò)循環(huán)寫入一維數(shù)據(jù)的方式寫入CSV文件,參考代碼樣式如下:for row in ls: .write(,.join(row)+n)一二維數(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
30、.0%,1.2%,1.2%深圳,1.0%,1.4%,1.5%沈陽(yáng),1.0%,1.0%,1.0%一二維數(shù)據(jù)的表示和讀寫微實(shí)例7.8m7.8WriteD2toCSV.py 123456789101112131415fr=open(price2016.csv,r)fw=open(price2016out.csv,w)ls=forlineinfr:#將將CSV文件中的二維數(shù)據(jù)讀入到列表變量文件中的二維數(shù)據(jù)讀入到列表變量line=line.replace(n,)ls.append(line.split(,)foriinrange(len(ls):#遍歷列表變量計(jì)算百分?jǐn)?shù)遍歷列表變量計(jì)算百分?jǐn)?shù)forjin
31、range(len(lsi):iflsij.replace(.,).isnumeric():lsij=:.2%.format(float(lsij)/100)forrowinls:#將列表變量中的二位數(shù)據(jù)輸出到將列表變量中的二位數(shù)據(jù)輸出到CSV文件文件print(row)fw.write(,.join(row)+n)fr.close()fw.close()CSV格式的HTML展示CSV格式的HTML展示文件名:CSV2HTML.html 12345678910111213141516171819202016年7月部分大中城市新建住宅價(jià)格指數(shù)城市環(huán)比同比定基北京101.5120.7121.4上海
32、101.2127.3127.8廣州101.3119.4120.0深圳102.0140.9145.5沈陽(yáng)100.1101.4101.6CSV格式的HTML展示實(shí)例代碼13.1e13.1csv2html.py 123456789101112131415#e13.1csv2html.pyseg1=nnn2016年年7月部分大中城市新建住宅價(jià)格指數(shù)月部分大中城市新建住宅價(jià)格指數(shù)nseg2=nseg3=nndeffill_data(locls):seg=n.format(*locls)returnsegfr=open(price2016.csv,r)ls=CSV格式的HTML展示實(shí)例代碼13.1e13.
33、1csv2html.py 1617181920212223242526272829forlineinfr:line=line.replace(n,)ls.append(line.split(,)fr.close()fw=open(price2016.html,w)fw.write(seg1)fw.write(nnnn.format(*ls0)fw.write(seg2)foriinrange(len(ls)-1):fw.write(fill_data(lsi+1)fw.write(seg3)fw.close()高維數(shù)據(jù)的格式化高維數(shù)據(jù)的格式化與一維二維數(shù)據(jù)不同,高維數(shù)據(jù)能展示數(shù)據(jù)間更為復(fù)雜的組
34、織關(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高維數(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ù)組。以“本書作者”JSON數(shù)據(jù)為例。Json格式高維數(shù)據(jù)的格式化本書作
35、者 : 姓氏 : 嵩,名字 : 天,單位 : 北京理工大學(xué) , 姓氏 : 禮,名字 : 欣,單位 : 北京理工大學(xué) , 姓氏 : 黃,名字 : 天羽,單位 : 北京理工大學(xué) json庫(kù)的使用Json庫(kù)的概述n json庫(kù)主要包括兩類函數(shù):操作類函數(shù)和解析類函數(shù) 操作類函數(shù)主要完成外部JSON格式和程序內(nèi)部數(shù)據(jù)類型之間的轉(zhuǎn)換功能 解析類函數(shù)主要用于解析鍵值對(duì)內(nèi)容。Json庫(kù)的解析函數(shù)描述json.dumps(obj, sort_keys=False, indent=None)將Python的數(shù)據(jù)類型轉(zhuǎn)換為JSON格式,編碼過(guò)程json.loads(string)將JSON格式字符串轉(zhuǎn)換為Python的數(shù)據(jù)類型,解碼過(guò)程json.dump(obj, fp, sort_keys=False, indent=None)與dumps()功能一致,輸出到文件fpjson.load(fp)與loads()功能一
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年稷山社工面試試題及答案
- 2025年運(yùn)籌學(xué)對(duì)策論試題及答案
- 2025年零售媒體行業(yè)研究報(bào)告
- 2025年課程標(biāo)準(zhǔn)考試題及答案
- 鋼結(jié)構(gòu)拆除專項(xiàng)施工方案
- 5f的徑向分布函數(shù)極大值
- c++多線程同步原子操作原理
- 住宅水電施工方案
- 水罐施工方案
- 加熱涂料施工方案
- 兒童社區(qū)獲得性肺炎管理指南(2024修訂)
- 國(guó)際貿(mào)易規(guī)則變革研究
- 職業(yè)技能大賽互聯(lián)網(wǎng)營(yíng)銷師(直播銷售員)賽項(xiàng)備賽試題庫(kù)(濃縮300題)
- 智鼎在線測(cè)評(píng)題庫(kù)推理題
- 中職教育一年級(jí)上學(xué)期電子與信息《二極管的單向?qū)щ娦浴方虒W(xué)課件
- 《凝練的視覺(jué)符號(hào)》(新課標(biāo)美術(shù)上課)-圖文
- 幼兒園小班語(yǔ)言活動(dòng)《拔蘿卜》課件
- 英文繪本故事Brown.Bear.Brown.Bear.What.Do.You.See
- 讀后續(xù)寫人與自然類我?guī)椭従育埦盹L(fēng)后花園重建順利融入當(dāng)?shù)厣鐓^(qū)講義-2024屆高三英語(yǔ)二輪復(fù)習(xí)
- CJJ28-2014城鎮(zhèn)供熱管網(wǎng)工程施工及驗(yàn)收規(guī)范
- 2024年彌勒市東風(fēng)農(nóng)場(chǎng)有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論