Python桌面文件清理脚本

需求

桌面清理脚本,将桌面文件移动到指定文件,按天分类。

实现

目录结构

两个配置文件,一个主类。

代码

ignore.ini配置需要忽略的文件名或者后缀名。

比如需要忽略图标,可以加上.lnk;需要配置忽略文件夹temp,则在尾行加上temp即可;

 location.ini配置需要备份至哪个目录

main.py主类

import os
import datetime
import random
import shutil


def get_config(file_name):
    """
    读取配置文件
    :param file_name: 文件名
    :return: 按行读取
    """
    f = open(file_name)
    lines = []
    for line in f.readlines():
        line = line.strip('\n')
        lines.append(line)
    return lines


def get_desktop():
    """
    获取桌面路径
    :return: 桌面绝对路径
    """
    return os.path.join(os.path.expanduser("~"), 'Desktop')


def get_suffix(dir_path):
    """
    获取文件的后缀名
    :param dir_path: 文件名
    :return: 后缀名
    """
    return os.path.splitext(dir_path)[-1]


def get_exclude_suffix():
    """
    获取不参与整理的文件后缀名
    """
    dirs = {}
    lines = get_config('ignore.ini')
    for line in lines:
        dirs.setdefault(line, 0)
    return dirs


def get_target_path():
    """
    备份至指定文件夹
    :return: 目标位置的路径
    """
    return get_config('location.ini')[0]


def get_source_dirs():
    """
    获取需要转移的文件
    :return: 文件目录
    """
    dirs = os.listdir(get_desktop())
    suffixes = get_exclude_suffix()
    fit_dirs = []
    for dir in dirs:
        suffix = get_suffix(dir)
        if suffix not in suffixes and dir not in suffixes:
            fit_dirs.append(dir)
    return fit_dirs


def move():
    """
    移动文件
    """
    dirs = get_source_dirs()
    target_base_path = get_target_path()
    desk_url = get_desktop()
    target_path = os.path.join(target_base_path, datetime.datetime.now().strftime('%Y%m%d'))
    if not os.path.exists(target_path):
        os.makedirs(target_path)
    else:
        target_path = os.path.join(target_path, datetime.datetime.now().strftime('%H%M%S'))
        os.makedirs(target_path)
    for dir in dirs:
        try:
            path = os.path.join(desk_url, dir)
            temp_file = os.path.join(target_path, dir)
            shutil.move(path, temp_file)
        except Exception :
            continue


if __name__ == '__main__':
    move()

 直接  python main.py 执行脚本即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值