在日常工作中,我們經常會遇到這樣一個問題:大量的檔案被随意存放在同一個檔案夾中,導緻檔案查找變得異常困難,甚至需要花費大量時間去手動整理。這種混亂的檔案夾管理方式不僅影響了工作效率,也增加了出錯的可能性。
不過,現在有了Python這個強大的自動化辦公工具,我們可以輕松解決這個問題。通過編寫簡單的Python腳本,我們可以根據檔案類型自動将檔案分類,讓檔案夾變得井井有條。
import os
import shutil
def classify_files(directory, destination_directory, config):
"""
将目錄下的檔案按照配置中的字尾分類到不同的檔案夾中。
Args:
- directory: 要分類的目錄路徑
- destination_directory: 分類後檔案夾的目标路徑
- config: 包含字尾、目标檔案夾和操作辨別的元組的配置清單
格式為 [('字尾1', '目标檔案夾1', '移動/複制'), ('字尾2', '目标檔案夾2', '移動/複制'), ...]
"""
# 周遊目錄下的所有檔案
for root, dirs, files in os.walk(directory):
for file in files:
# 擷取檔案的絕對路徑
file_path = os.path.join(root, file)
# 擷取檔案字尾
_, extension = os.path.splitext(file)
extension = extension.lower() # 統一轉換為小寫
# 在配置清單中查找字尾對應的配置項
for ext, dest, action in config:
if extension == ext:
destination_folder = os.path.join(destination_directory, dest)
# 如果目标檔案夾不存在,則建立它
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
# 執行移動或複制操作
if action == '移動':
shutil.move(file_path, destination_folder)
elif action == '複制':
shutil.copy(file_path, destination_folder)
if __name__ == "__main__":
# 配置檔案字尾、目标檔案夾和操作辨別的元組清單
file_extension_config = [
('.txt', 'TextFiles', '移動'),
('.jpg', 'ImageFiles', '複制'),
('.png', 'ImageFiles', '複制'),
('.jpeg', 'ImageFiles', '移動'),
('.mp3', 'AudioFiles', '移動'),
('.mp4', 'AudioFiles', '複制')
# 可以根據需要擴充更多的字尾、目标檔案夾和操作辨別的元組
]
# 要分類的目錄路徑
source_directory = "D:\\AI\\massdir"
# 分類後檔案夾的目标路徑
destination_directory = "./path/classify"
if not os.path.exists(destination_directory):
os.makedirs(destination_directory)
# 調用分類函數
classify_files(source_directory, destination_directory, file_extension_config)
代碼運作效果
整理前
整理後
當然,這個腳本隻是一個簡單的示例,你可以根據自己的需求進行靈活配置。比如,你可以根據需要添加更多的檔案類型,或者将檔案移動到目标檔案夾而不是複制。此外,你還可以考慮添加一些錯誤處理的邏輯,以處理可能出現的異常情況。
總之,通過Python自動化辦公,我們可以輕松實作檔案自動分類,讓工作變得更加高效和有序。隻需要幾行簡單的代碼,就能告别混亂的檔案夾,享受更加愉快的辦公體驗!