溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python基礎(chǔ)【文件】

發(fā)布時間:2020-07-23 08:37:28 來源:網(wǎng)絡(luò) 閱讀:181 作者:流域哈哈 欄目:編程語言

文件

文件的打開

函數(shù):open(filename,mode)
返回:一個文件對象
filename為文件名,mode為打開的模式

代碼:

file = open('filename','r')
print(file)

測試結(jié)果:

Python基礎(chǔ)【文件】


  • 模式:
  • r:只讀模式打開,文件指針放在開頭
  • w:寫模式,默認從文件開頭開始覆寫(會刪除已有內(nèi)容)
  • a:追加(寫),默認從文件尾部開始寫
  • b:以二進制形式打開(打開非純文本文件時使用)
  • +:可讀可寫
  • x:創(chuàng)建并進入寫模式,文件存在則報錯
  • t:文本模式
    注:‘b’ ’t‘ ‘+’需和其他模式組合使用,w和a如果不存在目標文件則會創(chuàng)建新文件,r模式不存在則會報錯。

代碼:

file = open('test_file','r') #test_file不存在,報錯

測試結(jié)果:

Python基礎(chǔ)【文件】


文件對象的方法

上面我們創(chuàng)建了一個名為file的文件對象,下面介紹文件對象的方法:

讀操作

  • 函數(shù):file.read(size)
    返回:從當前指針位置開始讀取,以 字符串 或 字節(jié) 對象形式返回讀取到的數(shù)據(jù)
    size為數(shù)值類型的參數(shù),決定讀取數(shù)據(jù)的長度,省略或小于0則讀取文件的所有內(nèi)容
  • 函數(shù):file.readline(limit)
    返回:從當前指針位置開始讀取一行,以 字符串 或 字節(jié) 對象形式返回該行數(shù)據(jù),返回空說明已經(jīng)讀到了文件的最后一行
    limit為數(shù)值類型的參數(shù),可以限制單行讀取的數(shù)據(jù)長度
  • 函數(shù):file.readlines(sizeint)
    返回:從當前指針位置開始讀取,以列表形式,返回文件的所有行(以行為界分割的字符串所組成)
    sizeint為數(shù)值類型的參數(shù),決定讀取數(shù)據(jù)的長度

寫操作

  • 函數(shù):file.write(string)
    返回:返回當前指針所在的位置
    string為寫入文件的字符串
  • 函數(shù):file.writelines(seq)
    返回:返回當前指針所在的位置
    seq為即將寫入的序列,自動將字符串拼接并從當前位置寫入

文件對象位置

  • 函數(shù):f.tell()
    返回:文件對象當前所處的位置, 它是從文件開頭開始算起的字節(jié)數(shù)。

調(diào)整文件對象位置

  • 函數(shù):f.seek(offset, from_what)
    返回:返回更改后的所處位置
    offset為移動的相對位置,2表示后移2個,-1表示前移1個
    from_what為參考點,0為文件開頭,1為當前位置,2為文件末尾
    注:文本文件中沒有用二進制打開的文件必須從開頭計算位置,即from_what為0,否則會報錯。

關(guān)閉文件

  • 函數(shù):file.close()
    當你處理完一個文件后, 調(diào)用 f.close() 來關(guān)閉文件并釋放系統(tǒng)的資源
    如果嘗試再調(diào)用該文件,則會拋出異常。

    代碼:

    file = open('test_file','w+')
    file.write("hello python\nhello world\nhello westos\n*****")
    file.close()
    file = open('test_file','r')
    print(file.read())
    file.seek(0,0)
    print(file.readable())
    print(file.readline())
    print(file.tell())

    測試結(jié)果:

    Python基礎(chǔ)【文件】


with語句

利用with語句可以簡化文件的打開和關(guān)閉
with語句執(zhí)行完畢后會自動關(guān)閉文件對象
語法:

with expression as f:
語句
  • 利用with語句將文件1中的數(shù)據(jù)寫入文件2:
    with open('data.txt') as f1,\
    open('data_test','w+') as f2:
    f2.write(f1.read())

利用yeild實現(xiàn)文件的讀取

def bylineread(filename): # 定義一個生成器
with open(filename) as f: # 打開文件
line = f.readline # 讀取一行
while line: # 讀到最后一行跳出循環(huán)
yield line
line = f.readline() # 讀取一行
read = bylineread('data.txt') # read代表生成器對象
for item in read: # 遍歷生成器對象中的元素
print(item)

Iterable

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI