博客 / 詳情

返回

python 辦公自動化

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
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.