python--文件讀寫


python文件讀寫分為三步

  打開文件,獲取句柄;操作文件;關閉文件

文件基本操作如下:   

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

文件打開時,需指定文件路徑、打開方式,windows文件路徑如果是“E:\person_practice\python\test.txt”,需要把"\"做轉移,或者改成:

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

打開方式分為r、w、a三種方式 ,【+】表示可以同時讀寫

  r  只讀,默認模式

  w   只寫,不可讀,若文件不存在則創建,若存在,則刪除內容,寫入新內容

  a  只追加,不可讀,若文件不存在則創建,存在則追加新內容

  r+  可讀、可寫、可追加,若文件不存在,則報錯

  w+  可讀、可寫,若文件存在,內容會被清空,可讀新寫入的內容

  a+  可讀、可寫、可追加,若文件存在,則追加新內容,讀時默認指針在文件末尾,若需讀取整個文件,需把指針歸零【f.seek(0)】

此種方式打開文件,需要在使用結束后及時關閉文件,可以使用【with】方法來解決:

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

 此種方式會在使用完文件句柄后,自動關閉該文件。

常用文件操作命令

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

 

文件修改

修改文件有兩種方式,一種是把文件內容讀取到內存,清空並重寫;第二種是把修改后的文件內容寫到一個新文件中;

第一種方式

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

第二種方式

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

 

另:

  因文件流操作包含緩存機制,write方法不直接寫入文件,而是先寫入內存的緩存區,等緩存區滿了之后再寫入文件,並清空緩存區;

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

 1 # 打開文件
 2 f = open("test.txt", "w+")
 3 
 4 f.write("flush")
 5 
 6 # 刷新緩沖區,並寫入文件
 7 f.flush()
 8 
 9 # 關閉文件
10 f.close()

 

參考資料見: http://www.nnzhp.cn/blog/2016/12/19/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B8%89%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%92%8C%E9%9B%86%E5%90%88/

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM