日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python基礎(chǔ)必掌握的文件讀寫(xiě)操作詳解

 excel05 2022-06-16 發(fā)布于福建

讀取和寫(xiě)入文件等操作是 Python 可以完成的最常見(jiàn)任務(wù)之一。無(wú)論是寫(xiě)入簡(jiǎn)單的文本文件,還是讀取復(fù)雜的服務(wù)器日志,甚至分析原始字節(jié)數(shù)據(jù),進(jìn)行相關(guān)的處理操作,最終所有這些情況都需要讀取或?qū)懭胛募?/span>

整套學(xué)習(xí)自學(xué)教程中應(yīng)用的數(shù)據(jù)都是《三國(guó)志》、《真·三國(guó)無(wú)雙》系列游戲中的內(nèi)容。

文章圖片1

文件的基本概念

文件是一組用于存儲(chǔ)數(shù)據(jù)的連續(xù)字節(jié)。這些數(shù)據(jù)以特定格式組織,可以是文本文件等簡(jiǎn)單的文件,也可以是可執(zhí)行程序等復(fù)雜的文件。這些字節(jié)文件然后被翻譯成二進(jìn)制文件1,0 便于計(jì)算機(jī)進(jìn)行處理。

文章圖片2

文件包含三個(gè)部分:

  1. Header: 關(guān)于文件內(nèi)容的元數(shù)據(jù)(文件名、大小、類(lèi)型等)。
  2. Data: 由創(chuàng)建者或編輯者編寫(xiě)的文件內(nèi)容。
  3. EOF: 表示文件結(jié)束的特殊字符。
文章圖片3

數(shù)據(jù)表示的內(nèi)容取決于所使用的格式規(guī)范通常由擴(kuò)展名表示。例如擴(kuò)展名為.jpg最有可能符合圖形交換格式規(guī)范的文件但未必是圖片文件。

擴(kuò)展名有數(shù)百甚至數(shù)千個(gè)文件擴(kuò)展名。這里介紹 .txt 和 .csv 擴(kuò)展名。

文件路徑

訪問(wèn)文件需要文件路徑,文件路徑由字符串組成。其中包括三個(gè)部分:

  1. 文件夾路徑: 文件系統(tǒng)上的文件夾位置,后續(xù)文件夾由正斜杠 / (Unix) 或反斜杠 \ (Windows) 分隔。
  2. 文件名: 文件的實(shí)際名稱。
  3. 擴(kuò)展名: 文件路徑的末尾以句點(diǎn) ( .) 開(kāi)頭,用于指示文件類(lèi)型。
文章圖片4
文章圖片5

行尾

行為可以追溯到摩爾斯電碼時(shí)代,當(dāng)時(shí)使用特定的符號(hào)來(lái)傳達(dá)傳輸?shù)慕Y(jié)束或行的結(jié)束。

Windows 使用 CR+LF 字符來(lái)表示新行,而 Unix 和較新的 Mac 版本僅使用LF字符。這些符號(hào)都是不可見(jiàn)的,但是可以操作。

# windowsHello World\r\nDynasty Warriors\r\n

字符編碼

未來(lái)還會(huì)面臨的一個(gè)字符數(shù)據(jù)編碼的問(wèn)題。兩種最常見(jiàn)的編碼是ASCII和UNICODE格式。

  • ASCII 智能存儲(chǔ) 128 個(gè)字符。
  • Unicode 最多可以包含 1,114,112 個(gè)字符。

在 Python 中打開(kāi)和關(guān)閉文件

調(diào)用 open() 內(nèi)置函數(shù)來(lái)完成,其中包含一個(gè)文件路徑的文件關(guān)鍵參數(shù)。

file = open('data.txt')

調(diào)用 .close() 對(duì)打開(kāi)的文件進(jìn)行關(guān)閉。

file.close()

可以調(diào)用 with語(yǔ)句 在執(zhí)行打開(kāi)操作模塊后自動(dòng)進(jìn)行關(guān)閉。

with open('data.txt', 'r') as f:    .......

讀寫(xiě)參數(shù)說(shuō)明。

文章圖片7

讀寫(xiě)參數(shù)組合。

文章圖片8

文本文件類(lèi)型

文本文件是您會(huì)遇到的最常見(jiàn)的文件。

# 打開(kāi)方式舉例open('data.txt')open('data.txt', 'r')open('data.txt', 'w')type(file)<class '_io.TextIOWrapper'>

緩沖的二進(jìn)制文件類(lèi)型

# 打開(kāi)方式舉例file = open('abc.txt', 'rb') # 讀type(file)<class '_io.BufferedReader'>file = open('abc.txt', 'wb') # 寫(xiě)type(file)<class '_io.BufferedWriter'>

原始文件類(lèi)型

file = open('abc.txt', 'rb', buffering=0)type(file)<class '_io.FileIO'>

讀寫(xiě)打開(kāi)的文件

讀取文件時(shí)可以調(diào)用的方法。

# size這最多從該行中讀取多個(gè)字符。這一直持續(xù)到行尾,然后回繞。如果沒(méi)有傳遞或傳遞參數(shù)None-1則讀取整行(或該行的其余部分)。.readline(size=-1)  # 這將從文件對(duì)象中讀取剩余的行并將它們作為列表返回。.readlines()    

.read(size=-1),size字節(jié)數(shù)從文件中讀取。如果沒(méi)有傳遞或傳遞參數(shù)None,-1則讀取整個(gè)文件。

with open('data.txt', 'r') as f: print(f.read())data data datadata data datadata data data

.readline(size=-1),從該行中讀取多個(gè)字符。這一直持續(xù)到行尾,然后回繞。如果沒(méi)有傳遞或傳遞參數(shù)None,-1則讀取整行(或該行的其余部分)。

with open('data.txt', 'r') as f:    print(f.readline(2))data data datadata data data

.readlines(),這將從文件對(duì)象中讀取剩余的行并將它們作為列表返回。

with open('data.txt', 'r') as f: print(f.readlines())data data datadata data datadata data data

遍歷文件中的每一行

.readline() 方法每次遍歷一行。

with open('data.txt', 'r') as f:    line = f.readline()    while line != '':        print(line, end='')        line = f.readline()data data datadata data datadata data data

.readlines() 方法返回一個(gè)列表,其中列表中的每個(gè)元素代表文件中的一行。

with open('data.txt', 'r') as f: for line in f.readlines(): print(line, end='')data data datadata data datadata data data# 或者簡(jiǎn)化操作with open('data.txt', 'r') as f: for line in f: print(line, end='')data data datadata data datadata data data

文件的讀寫(xiě)是相對(duì)的,方法和讀取一樣。

with open('data.txt', 'r') as f:    lines = f.readlines()    f.write(lines)

字節(jié)操作

使用字節(jié)字符串處理文件。這是通過(guò)將 'b' 字符添加到參數(shù)來(lái)完成的。

with open('data.jpg', 'rb') as f: print(f.readline())b'\x89'b'JPG'b'\r\n'b'\x1a'b'\n'

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多