你應該知道的10個Python文件系統方法

前言


大家可以編寫Python程序來與文件系統進行交互,以完成一些很酷的工作。然而如何做到這一點並不總是非常清楚。本文將重點介紹10個基本的os操作和shutil命令,這樣您就可以編寫腳本來自動化與文件系統的交互。os模塊是與操作系統交互的主要Python模塊。shutil模塊還包含高級文件操作。一般而言,您可以使用os創建目錄,但使用shutil移動和複製它們。

文件系統有點像一個房子。假設你在大掃除,需要把一箱箱的筆記本從一個房間搬到另一個房間。


你應該知道的10個Python文件系統方法


這些方框就像目錄,裡面是文件。文件就像檔案。你可以給他們進行讀和寫也可以將它們放在目錄框中。

獲取信息


1.os.getcwd() 將當前工作目錄路徑作為字符串獲取


等價於macOS/Linux系統的pwd命令


2.os.listdir() 以字符串列表的形式獲取當前工作目錄的內容


等價於macOS/Linux系統的ls命令


3.os.walk (“starting_directory_path”) 返回一個生成器,其中包含當前目錄和所有子目錄中的目錄和文件的名稱和路徑信息


os.walk()創建一個生成器,它可以返回關於當前目錄和子目錄的信息。它通過指定的起始目錄中的目錄工作。


os.walk()為它所遍歷的每個目錄返回以下項:


  1. 當前目錄路徑為字符串
  2. 當前目錄中的子目錄名作為字符串
  3. 列表當前目錄中的文件名作為字符串列表


使用帶有for循環的os.walk()來遍歷目錄及其子目錄的內容通常很有用。例如,下面的代碼將打印當前工作目錄的目錄和子目錄中的所有文件。


<code>import os
cwd = os.getcwd()
for dir_path, dir_names, file_names in os.walk(cwd):
    for f in file_names:
        print(f)/<code>


這就是我們獲取信息的方式,現在讓我們看看更改工作目錄或移動、複製或刪除文件系統部分的命令。


改變事物


4. os.chdir("/absolute/or/relative/path")


等價於macOS/Linux系統的cd命令


此方法將當前工作目錄更改為提供的絕對路徑或相對路徑。如果您的代碼隨後對文件系統做了其他更改,那麼在使用try-except方法時處理任何拋出的異常都是一個好主意。否則,您可能正在刪除不想刪除的目錄或文件。


5. os.path.join()


os.path模塊有許多用於常見路徑名操作的有用方法。您可以使用它來查找關於目錄名和目錄名部分的信息。模塊還具有檢查文件或目錄是否存在的方法。join()的設計目的是通過將多個字符串連接到一個漂亮的文件路徑中,創建一個可以在大多數操作系統上工作的路徑。


基本上,如果您使用的是Unix或macOS系統,os.path.join()在提供的每個字符串之間加上一個正斜槓(" / ")來創建路徑。如果操作系統需要“\”,那麼join知道使用反斜槓。join()還向其他開發人員提供了創建路徑的明確信息。一定要使用它而不是手動的字符串連接,以避免看起來像一個新手。


6. os.makedirs("dir1/dir2")


等價於macOS/Linux系統的mkdir -p命令


os.makedirs()創建目錄。mkdir()方法也創建目錄,但它不創建中間目錄。所以我建議您使用os.makedirs()。


7.shutil.copy2("source_file_path","destination_directory_path")


等價於macOS/Linux系統的cp命令


在Python中有許多方法可以複製文件和目錄。shutil.copy2()是一個很好的選擇,因為它試圖儘可能多地保留源文件的元數據。


8. shutil.move("source_file","destination")


等價於macOS/Linux系統的mv命令


使用shutil.move()來更改文件的位置。


9. os.remove("my_file_path")


等價於macOS/Linux系統的rm命令


10. shutil.rmtree("my_directory_path")


等價於macOS/Linux系統的rm -rf命令



參考:https://towardsdatascience.com/10-python-file-system-methods-you-should-know-799f90ef13c2


分享到:


相關文章: