1.文件按類型整理
from os import walk,listdir
import os
from shutil import copy,move
import openpyxl
path = "../fileman"
path_collect = "../../desk"
dics = {"docx":f'{path_collect}/文檔',"xlsx":f'{path_collect}/電子表格',
'txt':f'{path_collect}/記事本',
'default':f'{path_collect}/默認'}
def get_folder_path(prefix):
x = dics.get(prefix)
if x is None:
return dics["default"]
return x
for filepath,folders,files in walk(path):
for file in files:
file_prefix = file.split(".")[-1]
x = ''
if file_prefix in file:
x = get_folder_path(file_prefix)
else:
x = get_folder_path("default")
# 執行復制
# copy(os.path.join(filepath,file),x)
# 執行移動
move(os.path.join(filepath,file),x)
print("複製或移動完畢")
2.文件按大小
import os
from shutil import copy
import datetime
import time
'''
基於文件創建時間和文件大小來整理文件
//大小
os.path.getSize()
'''
# 處理的文件目錄
base_path = "../fileman"
# 遍歷文件夾
for filePath,folders,files in os.walk(base_path):
for file in files:
# 獲取文件大小
file_size = os.path.getsize(os.path.join(filePath,file))/1024/1024
if(file_size>100):
# TODO
3.文件按時間
import os
from shutil import copy
import datetime
import time
# 處理的文件目錄
base_path = "../fileman"
# 遍歷文件夾
for filePath,folders,files in os.walk(base_path):
for file in files:
# 獲取文件創建時間
# getmtime是獲取 modifytime
# getctime是獲取 createtime
create_time = os.path.getctime(os.path.join(filePath,file))
real_time = time.localtime(create_time)
dt = time.strftime("%Y-%m-%d %H:%M",real_time)
condition_time = "2025-12-20 15:30"
time_array = time.strptime(condition_time,"%Y-%m-%d %H:%M")
my_target_time = float(time.mktime(time_array))
# 之前的時間小, 之後的時間大
if(create_time < my_target_time):
print(f"{dt}:設定時間之前")
copy(os.path.join(filePath,file),os.path.join("../時間",file))
else:
print(f"{dt}:設定時間之後")
# TODO