一、概述
shutil是一個Python標準庫中的模塊,專門用於對文件和整個文件夾進行操作。它提供了各種實用的功能,如拷貝、移動、刪除和歸檔文件等。
在日常開發工作中,我們常常需要對文件、文件夾進行操作和維護。這時,shutil模塊就成了不可或缺的工具之一。
二、拷貝文件
拷貝單個文件是shutil模塊中最常見的操作。通過使用shutil.copy(src, dst)函數,可以將源文件拷貝到目標路徑中:
import shutil src_file = "/path/to/src_file" dst_file = "/path/to/dst_file" shutil.copy(src_file, dst_file)
其中,src_file指定源文件路徑,dst_file指定目標文件路徑。如果目標路徑中不存在該文件,則會自動創建該文件,並將源文件內容拷貝到其中。
當然,如果你需要拷貝整個目錄,可以使用shutil.copytree(src, dst)函數,如下所示:
import shutil src_dir = "/path/to/src_dir" dst_dir = "/path/to/dst_dir" shutil.copytree(src_dir, dst_dir)
其中,src_dir指定源目錄路徑,dst_dir指定目標目錄路徑。該函數會將源目錄下的所有文件和子目錄拷貝到目標目錄中。
三、移動和重命名文件
除了拷貝文件外,shutil模塊還可以用於移動和重命名文件。
要移動文件,可以使用shutil.move(src, dst)函數,如下所示:
import shutil src_file = "/path/to/src_file" dst_file = "/path/to/dst_file" shutil.move(src_file, dst_file)
其中,src_file指定源文件路徑,dst_file指定目標文件路徑。如果目標路徑中不存在該文件,則會自動創建該文件,並將源文件移動到其中。
如果你只是需要重命名文件,可以在目標路徑中指定新文件名,如下所示:
import shutil src_file = "/path/to/src_file" dst_file = "/path/to/new_file_name" shutil.move(src_file, dst_file)
這將把源文件重命名為新文件名,並且將其移動到目標路徑中。
四、刪除文件和目錄
shutil模塊還提供了刪除文件和文件夾的功能,可使用以下方法:
1、刪除單個文件:
import os import shutil file_path = "/path/to/file" if os.path.exists(file_path): os.remove(file_path) else: print("The file does not exist")
2、刪除整個目錄:
import shutil dir_path = "/path/to/directory" shutil.rmtree(dir_path)
其中,rmtree函數可以將整個目錄以及目錄下的子目錄和文件全部刪除。
五、歸檔文件
除了以上常見的文件操作,shutil模塊還支持歸檔和壓縮文件的操作。可以使用zipfile、tarfile和shutil本身提供的函數進行處理。
1、壓縮文件:
import shutil # 壓縮文件到zip格式 shutil.make_archive("/path/to/zip_file_name", "zip", "/path/to/directory")
2、解壓縮文件:
import shutil # 解壓縮zip格式的文件 shutil.unpack_archive("/path/to/zip_file_name.zip", "/path/to/extract_directory", "zip")
3、創建tar文件:
import shutil # 創建tar文件 shutil.make_archive("/path/to/tar_file_name", "tar", "/path/to/directory")
4、解壓縮tar文件:
import shutil # 解壓縮tar格式的文件 shutil.unpack_archive("/path/to/tar_file_name.tar", "/path/to/extract_directory", "tar")
六、總結
shutil模塊在Python中有着廣泛的應用。無論是文件操作,還是歸檔和壓縮,shutil總能給我們帶來方便和高效的體驗。
在開發過程中,我們經常會遇到各種各樣的問題,使用shutil模塊可以方便地進行文件操作,快速解決問題,提高工作效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187654.html