【Python】常用文件操作

對文件內容操作:

file= open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file.read([size]) #size爲讀取的長度,以byte爲單位

file.readline([size]) #讀一行,如果定義了size,有可能返回的只是一行的一部分

file.readlines([size]) #把文件每一行作爲一個list的一個成員,並返回這個list。其實它的內部是通過循環調用readline()來實現的。如果提供size參數,size是表示讀取內容的總長,也就是說可能只讀到文件的一部分。

file.tell() #返回文件操作標記的當前位置,以文件的開頭爲原點

file.next() #返回下一行,並將文件操作標記位移到下一行。

file.seek(offset[,whence]) #將文件打操作標記移到offset的位置。這個offset一般是相對於文件的開頭來計算的,一般爲正數。但如果提供了whence參數就不一定了。whence可以爲0,表示從頭開始計算;可以爲1表示,以當前位置爲原點計算;可以爲2,表示以文件末尾爲原點進行計算。需要注意,如果文件以a或a+的模式打開,每次進行寫操作時,文件操作標記會自動返回到文件末尾。

file.write(str) #把str寫到文件中,write()並不會在str後加任何東西

file.writelines(seq) # 一次性寫一個list,不會在每個item後面加任何東西

file.close() #關閉文件。python會在一個文件不用後自動關閉文件,不過這一功能沒有保證,最好還是養成自己關閉的習慣。 如果一個文件在關閉後還對其進行操作會產生ValueError

file.flush() #把緩衝區的內容寫入硬盤

file.fileno() #返回一個長整型的”文件標籤“

file.isatty() #文件是否是一個終端設備文件(unix系統中的)

時,就是調用next()函數來實現遍歷的。

對目錄操作:

#創建文件夾:
os.mkdir("file")

#複製文件:
shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是文件

#複製文件夾:
shutil.copytree("olddir","newdir") #olddir和newdir都只能是目錄,且newdir必須不存在

#重命名文件
os.rename("oldname","newname") #文件或目錄都是使用這條命令

#移動文件
shutil.move("file","dir") 

#刪除文件
os.remove("file")

#刪除目錄
os.rmdir("dir") #只能刪除空目錄
shutil.rmtree("dir") #空目錄、有內容的目錄都可以刪

#轉換目錄
os.chdir("path") #修改當前路徑

os模塊中的文件操作:

os.path.isdir(name) #判斷name是不是一個目錄,name不是目錄就返回false

os.path.isfile(name) #判斷name是不是一個文件,不存在name也返回false

os.path.exists(name) #判斷是否存在文件或目錄name

os.path.getsize(name) #獲得文件大小,單位字節,如果name是目錄返回0

os.path.abspath(name) #獲得絕對路徑

os.path.split(name) #分割文件名與目錄(僅僅是把路徑中最後一個/的後面部分分離開而已)

os.path.splitext() #分離文件名與擴展名(僅僅是把路徑中最後一個.的後面部分分離開而已)

os.path.join(path,name) # 連接目錄與文件名或目錄

os.path.basename(path) # 返回文件名(僅僅是返回路徑中最後一個/的後面部分而已)

os.path.dirname(path) # 返回文件路徑(僅僅是返回路徑中最後一個/的前面部分而已)
 
#列出目錄下的文件:
os.listdir(path) # 僅僅是一層深度,不會遞歸子文件夾

#獲取當前工作目錄:
os.getcwd() 

#創建多級目錄:
os.makedirs(r"c:\python\test") # 如果以/開頭,則指的是當前磁盤的根目錄

#刪除多個目錄:
os.removedirs(r"hahah/xixixi/mmm") # 遞歸刪除空文件夾。先嚐試刪除mmm文件夾,然後嘗試刪除xixixi文件夾,最後刪除hahah文件夾

#刪除單個空目錄:
os.rmdir("test")

#獲取文件屬性:
os.stat(file)

參考:
https://www.cnblogs.com/claudia/p/9988624.html
https://www.cnblogs.com/wkjava/p/12640426.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章