溫馨提示×

溫馨提示×

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

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

Python進(jìn)行文件處理的方法是什么

發(fā)布時(shí)間:2023-02-27 09:33:28 來源:億速云 閱讀:91 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python進(jìn)行文件處理的方法是什么”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Python進(jìn)行文件處理的方法是什么”文章能幫助大家解決問題。

    1.文件介紹

    python操作文件

    1.1python文件的基本操作

    打開文件關(guān)鍵字open

    語法格式:

    open('文件路徑','讀寫模式','字符編碼')

    f = open('a.txt','r',encoding='utf-8')#打開文件
    print(f.read())#操作文件
    f.close()#關(guān)閉文件

    1.2.with上下文管理器

    (with打開文件之后會自動關(guān)閉)

    語法格式:

    with open(r'a.txt','r',encoding='utf-8') as f:

    • as f:就相當(dāng)于你寫了一個(gè)f = open,只不過這個(gè)as替換了等于號,這個(gè)f(句柄)就相當(dāng)于一個(gè)變量名可以隨意更改

    • r 的作用:有時(shí)有你在填寫路徑的時(shí)候遇到反斜杠可能會發(fā)生轉(zhuǎn)義,這個(gè)時(shí)候字符串最前面加上 r 來解決轉(zhuǎn)義的問題,

    2.文件的讀寫模式

    2.1. r  == read: 只讀,不能寫

    with open(r'a.txt','r',encoding='utf-8') as f:
    f.read()
    #read()是有缺陷的,如果打開文件特別大的時(shí)候就會打不開,會很慢。會導(dǎo)致內(nèi)存溢出,因?yàn)樗蜷_不會存在磁盤中,會先存在內(nèi)存中

    2.2. w ==write:只能寫,不能讀

    with open(r'a.txt','w',encoding='utf-8') as f:
    f.write('內(nèi)容')
    #如果路徑不存在,會新建一個(gè)文件
    #如果文件存在,會先清空文件中的內(nèi)容,在進(jìn)行寫內(nèi)容,就算不寫東西用pass,也會清空,w模式就會直接清空
    # w 模式只能寫string類型

    2.3. a == apppen : 追加

    with open(r'a.txt','a',encoding='utf-8') as f:
    f.write('內(nèi)容\n')
    #如果路徑不存在,會新建一個(gè)文件
    #不會清空文件內(nèi)容,但是不會換行,需要自己在內(nèi)容后面加\n

    多行數(shù)據(jù):括號里不可能寫多行數(shù)據(jù),需要多個(gè)write如下:

    f.write('內(nèi)容\n')
    f.write('內(nèi)容\n')
    f.write('內(nèi)容\n')
    f.write('內(nèi)容\n')
    ########r,w, a:只能讀寫文檔,不能讀寫視頻音頻

    3.文件的操作方法

    ##讀模式
    with open(r'a.txt','a',encoding='utf-8') as f:
    print(f.readline())#一次讀取一行,會自動換行
    print(f.readlines())#把文件內(nèi)的數(shù)據(jù)按照每一行組裝成列表的模式
    print(f.readable())#判斷是否可具備讀的條件,就是看這個(gè)文件是否可讀,返回bool值
     
    ##寫模式
    with open(r'a.txt','a',encoding='utf-8') as f:
    print  (f.write())#直接清空數(shù)據(jù),然后根據(jù)口號中的內(nèi)容寫數(shù)據(jù)
    print(f.writeable())#判斷是否具備寫的條件,返回bool值
    print(f.writelines(['獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n',]))#就是吧數(shù)據(jù)一行一行的給你去寫
     
    ##文件的操作優(yōu)化
    print(f.flush())#把內(nèi)存中的數(shù)據(jù)立刻刷到硬盤中,因?yàn)槟阋婚_始寫的數(shù)據(jù)會存儲在內(nèi)存中如果發(fā)生斷電數(shù)據(jù)會消失
    """文件句柄 f 支持for循環(huán)"""
    with open(r'a.txt','a',encoding='utf-8') as f:
      for line in f :
    print(line)#把文件里面的數(shù)據(jù)一行一行打印,以后讀取文件的時(shí)候都要用for循環(huán)一行一行的去讀取

    4.文件的操作模式

    r. w. a. 模式

    1. 只能操作文本

    2. 都是以字符串為單位

    3. r,w,a,原先的寫法是rt,wt,at,如果是只操作文本這個(gè)t可以省略

    b模式:二進(jìn)制

    1.能操作任何的數(shù)據(jù)類型,eg:文本,音頻,視屏

    2.寫法:rb ab wb  :此時(shí)的b不能省略

    3.b模式的情況下encoding參數(shù)不能寫,因?yàn)樗际亲址幋a的模式了encoding就沒用了

    ##rb:
    with open(r'a.jpeg','rb') as f:#b模式的話字符編碼就不要了
    print(f.read())#打印出一推二進(jìn)制數(shù)
    ##wb:
    with open(r'a.jpeg','rb',encoding='utf-8') as f:
    f.write(b'你好')#你好前面必須加上b才可以打印出,不然出來的是亂碼注釋第一種編碼方式
    s.'你好'
    f.write(s.encode(utf8))#這是第二種編碼方式
    """wb寫進(jìn)去了也必須rb來讀,然后后面還需要跟上decode去解碼
    print(f.read().decode('utf8'))
    """
    ##按照字符或字節(jié)讀?。阂⒁馑x取的數(shù)據(jù)大小
    with open(r'a.txt','a',encoding='utf-8') as f:
    print(f.read(1))#當(dāng) r 模式下,read括號里面的數(shù)字代表的是字符,但是在 b 模式下read后面括號里面的代表的是字節(jié)

    關(guān)于“Python進(jìn)行文件處理的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

    向AI問一下細(xì)節(jié)

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

    AI