Python學習筆記——Python開發中的文件操作

每門語言都會涉及到文件操作,本次就學習一下python中與文件操作相關的知識。

一、文件操作

1、創建空文件

os.mknod("newfile.txt")

2、打開文件操作

fp=open("newfile.txt",“w”) 打開文件寫,不存在則創建,打開文件的模式主要有如下方式

w 以寫方式打開
a 以追加模式打開(從EOF開始,必要時創建新文件)
r+ 以讀寫模式打開
w+ 以讀寫模式打開(參見w)
a+ 以讀寫模式打開(參見a)
rb 以二進制讀模式打開
wb 以二進制寫模式打開
ab 以二進制追加模式打開
rb+ 以二進制讀寫模式打開
wb+ 以二進制讀寫模式打開
ab+ 以二進制讀寫模式打開
從打開模式來看,python的模式與c語言中的一致,不過c語言使用fopen,而此處爲open,模式代表的意義也基本一致,所以對python的基本文件讀寫,打開文件方式與c一致,所以很快就可以掌握。

讀寫過程中常用的一些函數見下表:

fp.read(size) size爲讀取的長度,以byte爲單位
fp.readline(size) 讀一行,如果定義了size,有可能返回的只是一行的一部分
fp.readlines(size) 吧文件每一行作爲一個list的一個成員,並返回這個list。
size爲讀取的總長度,當讀取的長度夠size後,就不會讀取行數了。
fp.write(str) 把str寫到文件中,write()不會在str後加上一個換行符
fp.writelines(seq) 把seq的內容全部寫到文件中(多行一次性寫入)。
fp.close() 關閉文件。
fp.flush() 把緩衝區的內容寫入磁盤
fp.fileno() 返回一個長整型的文件標籤
fp.isatty() 文件是否是一個終端設備文件(unix linux)
fp.tell() 返回文件操作標記的當前位置,以文件的開頭爲起點
fp.next() 返回下一行,並將文件操作標記位移到下一行。
把一個file用於for ... in file這樣的語句時,使用此函數來實現遍歷。
fp.seek(offset,whence) 將文件操作標記移到offset的位置。offset一般是相對於文件的開頭來計算的,
一般爲整數,但如果提供了whence參數就不一定了,whence可以爲0表示從頭開始
計算,1表示當前位置爲起點計算,2表示以文件末尾爲起點進行計算。
需要注意:如果文件以a或a+的模式打開,每次進行寫操作時,文件操作標記會自動返回
到文件末尾。
fp.tuncate(size) 把文件裁定規定的大小,默認的是裁到當前文件操作標記的位置。如果size比文件的大小
還要打,依據系統的不同可能是不改變文件,也可能是用0把文件補到相應的大小,也可
能是以一些隨機的內容加上去。

看完上述的函數,發現基本上和c語言中讀寫文件類似,也是很容易掌握的,其實他的二進制讀寫處理能力不好,沒有c語言那麼瀟灑的操作。。

二、目錄與文件操作

目錄操作的一些函數見下表,注意使用了os和shutil模塊(shell工具模塊)

創建目錄 os.mkdir("dirname")
複製文件 shutil.copyfile("oldfile","newfile"),oldfile和newfile都只能是文件
複製文件夾 shutil.copytree("olddir","newdir")olddir和newdir只能是目錄,且newdir必須不存在
重命名文件目錄 os.rename("oldname","newname")
移動文件目錄 shutil.move("oldpos","newPos")
刪除文件 os.remove("file")
刪除目錄 os.rmdir("dir")只能刪除空目錄
刪除目錄 shutil.rmtree("dir")空目錄,有內容的目錄都可以刪除
轉換目錄 os.chdir("path")換路徑
複製文件 shutil.copy("oldfile","newfile") oldfile只能是文件夾,newfile可以是文件或文件夾

需要記住幾個簡單的區別,copy和copfile在複製文件的區別,刪除目錄的區別等。這些操作也不需要記住太多,更多的和Linux下的命令對應,只需要記住os和shutil的模塊就可以了。


發佈了127 篇原創文章 · 獲贊 15 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章