1. 程式人生 > 實用技巧 >Python第五篇--檔案操作

Python第五篇--檔案操作

檔案操作主要就是開啟,讀,寫,儲存,關閉

  f=open(filename)

  f.read(length)讀多少,如果沒有length就是全部讀到記憶體中 f.readline()這個是讀一行。讀取的時候會有一個游標,如果執行一次readline則下次再執行其他讀操作,從第二行開始進行以此類推

  f.write(data)

  f.close()儲存並關閉

檔案操作的模式

  r w a 分別表示只讀,建立,追加模式。python中檔案操作只能存在一種模式,不能讀進來修改再建立。w模式相當於建立,如果存在這個檔名,則覆蓋。不存在會建立

  f=open(filename,mode="w")

f=open(file="d:/test_file.txt",mode="w")
f.write("this is the first line \n")
f.write("this is the second line")
f.close()

  追加模式下,檔案追加內容還是f.write(data)並不是用append!!!!!

  預設模式是r

檔案迴圈讀行

  for line in f:

    print(line)

檔案操作的其他方法

  seek()當前游標後移幾個位元組,UTF-8中一箇中文3個位元組,gbk中一箇中文4個位元組

  flush()強制記憶體刷到硬碟上,因為檔案write其實是先寫到記憶體上,然後滿了才刷到硬碟,因為硬碟很慢,避免頻繁的硬碟操作。這個在很重要的內容儲存時使用,避免掉電丟失資料

  其他懶得寫了。。。

混合模式操作檔案(不常用,只是可以用)

  w+ a+

  寫入後可以讀出,讀入後可以追加寫,追加後可以讀,但是游標會到最後需要seek(0)

  seek指定位置,修改了內容預設的是會將後面內容覆蓋的,就像insert模式

如果將一個檔案的內容讀出來,判斷如果有XXX替換為***

  思路是先讀出來每一行,判斷是否有XXX,replace,最後重新命名一下

檔案重新命名需要用到os工具包

  os.rename()

import os
f=open(file="d:/test_file.txt",mode="r")
newf=open("d:/test_file_new.txt","w")
for line in f:
    line=line.replace("XXX","***")
    newf.write(line)
newf.close()
f.close()
os.replace("d:/test_file_new.txt","d:/test_file.txt")  #如果替換後的檔案已經存在了,會覆蓋,就和重新命名後提示是否覆蓋,點選了是效果一樣