溫馨提示×

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

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

python讀寫(xiě)文件的方法有哪些

發(fā)布時(shí)間:2020-08-07 11:58:05 來(lái)源:億速云 閱讀:259 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹python讀寫(xiě)文件的方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

python文件讀寫(xiě)分為三步

打開(kāi)文件,獲取句柄;操作文件;關(guān)閉文件

文件基本操作如下: 

1 f = open("E:\\person_practice\\python\\test.txt","r")   #打開(kāi)文件
2 fr = f.read()                                           #讀取文件
3 print(fr)

文件打開(kāi)時(shí),需指定文件路徑、打開(kāi)方式,windows文件路徑如果是“E:\person_practice\python\test.txt”,需要把"\"做轉(zhuǎn)移,或者改成:

"E:/person_practice/python/test.txt"

打開(kāi)方式分為r、w、a三種方式 ,【+】表示可以同時(shí)讀寫(xiě)

   r  只讀,默認(rèn)模式
  w   只寫(xiě),不可讀,若文件不存在則創(chuàng)建,若存在,則刪除內(nèi)容,寫(xiě)入新內(nèi)容
  a  只追加,不可讀,若文件不存在則創(chuàng)建,存在則追加新內(nèi)容
  r+  可讀、可寫(xiě)、可追加,若文件不存在,則報(bào)錯(cuò)
  w+  可讀、可寫(xiě),若文件存在,內(nèi)容會(huì)被清空,可讀新寫(xiě)入的內(nèi)容
  a+  可讀、可寫(xiě)、可追加,若文件存在,則追加新內(nèi)容,讀時(shí)默認(rèn)指針在文件末尾,若需讀取整個(gè)文件,
  需把指針歸零【f.seek(0)】

此種方式打開(kāi)文件,需要在使用結(jié)束后及時(shí)關(guān)閉文件,可以使用【with】方法來(lái)解決:

with open("F:\\python_scripts\\py\\test.txt ","r") as fr:  #以r形式打開(kāi)文件 
  for line in fr:                              #一行一行讀取 
  print(line)

此種方式會(huì)在使用完文件句柄后,自動(dòng)關(guān)閉該文件。

常用文件操作命令

    fr.read()           #讀取所有內(nèi)容
    fr.readline()       #讀取一行
    fr.readlines()      #讀取所有文件內(nèi)容,返回一個(gè)list
    #以上三個(gè)命令在大文件時(shí)慎用,會(huì)把內(nèi)容讀到內(nèi)存中,占用大內(nèi)存
    fr.seek(0)          #當(dāng)前文件指針位置在0位
    fr.writelines(["a","b"])    #把列表寫(xiě)入文件

文件修改

修改文件有兩種方式,一種是把文件內(nèi)容讀取到內(nèi)存,清空并重寫(xiě);第二種是把修改后的文件內(nèi)容寫(xiě)到一個(gè)新文件中;

第一種方式

1 with open("F:\\python_scripts\\py\\test.txt","r+") as fr:    #以讀的方式打開(kāi)
2     res = fr.read()                                          #讀取文件到內(nèi)存
3     new_res = res.replace("學(xué)習(xí)","study")                     #修改文件內(nèi)容
4     fr.write(new_res)                                        #修改的內(nèi)容重寫(xiě)進(jìn)文件
5     print(new_res)

第二種方式

with open("test_1.txt","r") as fr, open("test_2.txt","w+") as fw:   #同時(shí)打開(kāi)多個(gè)文件
    for line in fr:                                                 #循環(huán)讀取每一行
        new_line = line.replace("1","a")                            #把1改為a
        fw_new = fw.write(new_line)                                 #把修改后的內(nèi)容寫(xiě)到fw里

另:

因文件流操作包含緩存機(jī)制,write方法不直接寫(xiě)入文件,而是先寫(xiě)入內(nèi)存的緩存區(qū),等緩存區(qū)滿了之后再寫(xiě)入文件,并清空緩存區(qū);

若要實(shí)時(shí)寫(xiě)入文件,就需要用到 f.flush()方法:

 1 # 打開(kāi)文件
 2 f = open("test.txt", "w+")
 3 
 4 f.write("flush")
 5 
 6 # 刷新緩沖區(qū),并寫(xiě)入文件
 7 f.flush()
 8 
 9 # 關(guān)閉文件
10 f.close()

以上是python讀寫(xiě)文件的方法有哪些的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

AI