二級Python----文件和數(shù)據(jù)格式化(DAY 7)

一、文件的使用


Python對文本文件和二進制文件都有統(tǒng)一的操作步驟,即“打開-操作-關(guān)閉”

操作文件的流程:


1.文件的打開和關(guān)閉

內(nèi)置函數(shù)open()可以用指定模式打開指定文件并創(chuàng)建文件

使用方法:變量名= open(文件路徑及文件名,模式)

注:路徑中由于\是轉(zhuǎn)義符,所以表示路徑時,使用\\或/


打開模式中,'r'、'w'、'x'、’a'可以和'b'、't'、'+'組合使用,形成既表達讀寫又表達文件模式的方式。

文件使用結(jié)束后要用close()方法關(guān)閉,釋放文件的使用授權(quán)


2.文件的讀寫(注:假如文件變量為f)

f.read(size=-1):從文件中讀入整個文件內(nèi)容

參數(shù)可選,如果給出則讀入前size長度的字符串或字節(jié)流。其結(jié)果是一個字符串。

f.readline(size = -1): 從文件中讀入一行內(nèi)容。

參數(shù)可選,如果給出,讀入該行前size長度的字符串或字節(jié)流。其結(jié)果是一個字符串。

f.readlines(hint=-1):從文件中讀入所有行,以每行為元素形成一個列表。

參數(shù)可選,如果給出,讀入hint行。

文件打開后,對文件的讀寫有一個讀取指針,當(dāng)從文件中讀入內(nèi)容后,讀取指針將向前進,再次讀取的內(nèi)容將從指針的新位置開始。

f.seek(offset): 改變當(dāng)前文件操作指針的位置,offset的值:0:文件開頭;2:文件結(jié)尾

從文本文件中逐行讀入內(nèi)容并進行處理是一個基本的文件操作需求。文本文件可以看成是由行組成的組合類型,因此,可以使用遍歷循環(huán)逐行遍歷文件。

f.write(s): 向文件寫入字符串s,每次寫入后,將會記錄一個寫入指針。該方法可以反復(fù)調(diào)用,將在寫入指針后分批寫入內(nèi)容,直至文件被關(guān)閉。

f.writelines(lines):直接將列表類型的各元素連接起來寫入文件f。

文件讀寫操作相關(guān)的函數(shù)都會自動改變文件指針的位置。


文件路徑:絕對路徑、相對路徑

二、數(shù)據(jù)組織的維度

數(shù)據(jù)組織可以分為:一維數(shù)據(jù)、二維數(shù)據(jù)和高維數(shù)據(jù)

一維數(shù)據(jù):由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成,采用線性方式組織,對應(yīng)于數(shù)學(xué)中數(shù)組的概念。

例: 北京、上海、天津、重慶

二維數(shù)據(jù):也稱為表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,采用二維表格方式組織,對應(yīng)數(shù)學(xué)中的矩陣。


高維數(shù)據(jù):高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,采用對象方式組織,可以多層嵌套

高維數(shù)據(jù)在Web系統(tǒng)中十分常見,作為當(dāng)今Internet組織內(nèi)容的主要方式,高維數(shù)據(jù)衍生出HTML、XML、JSON等具體數(shù)據(jù)組織的語法結(jié)構(gòu)。

以JSON為例:


三、一維數(shù)據(jù)的處理

?一維數(shù)據(jù)的表示

在Python中主要采用列表形式表示。

例如中國的直轄市可以采用一個列表變量表示

?一維數(shù)據(jù)的存儲

總體思路是采用特殊字符分隔各數(shù)據(jù)。


CSV格式(逗號分隔值)

一種通用的、相對簡單的文件格式,存儲的文件一般采用.csv為擴展名。一維數(shù)據(jù)保存為CSV格式后,各元素采用逗號分隔,形成一行,這里的逗號是英文逗號

四、二維數(shù)據(jù)的處理

?二維數(shù)據(jù)的表示:

二維數(shù)據(jù)由多個一維數(shù)據(jù)構(gòu)成,可以看作是一維數(shù)據(jù)的組合形式,因此二維數(shù)據(jù)可以采用二維列表來表示,即列表的每個元素對應(yīng)二維數(shù)據(jù)的一行。



注:二維數(shù)據(jù)一般采用相同的數(shù)據(jù)類型存儲數(shù)據(jù),便于操作

?二維數(shù)據(jù)的存儲:

用CSV格式文件存儲,CSV文件的每一行是一維數(shù)據(jù),整個CSV文件是一個二維數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前文 在實際應(yīng)用中我們經(jīng)常經(jīng)歷把要處理的數(shù)據(jù)讀入python程序中進行處理并輸出的這一過程。 因此本章節(jié)主要解決的...
    井上皓閱讀 3,696評論 0 1
  • 關(guān)于數(shù)據(jù)的存儲結(jié)構(gòu),以下選項描述正確的是( D )A: 數(shù)據(jù)所占的存儲空間量B: 存儲在外存中的數(shù)據(jù)C: 數(shù)據(jù)在計...
    IIronMan閱讀 136,763評論 7 60
  • 數(shù)據(jù)維度是數(shù)據(jù)的組織形式 二維數(shù)據(jù)的表示使用列表類型列表類型可以表達二維數(shù)據(jù)[ [3.1398, 3.1349, ...
    小星star閱讀 1,225評論 0 1
  • 愛學(xué)習(xí)的孩子運氣不會差,我一直相信這句話。 但在這個娛樂至上普遍頹廢的年代,抖音游戲電影幾乎占據(jù)了人們空閑...
    ALWN閱讀 1,153評論 6 18
  • “我要吃糖果!” “不行,糖吃多了你會長蛀牙!” “我就要吃嘛!” 看著正在地上撒潑并且馬上就要哭出來的小...
    授子衣閱讀 242評論 0 1

友情鏈接更多精彩內(nèi)容