Python桌面文件清理脚本分享

 更新时间:2022年11月17日 11:30:53   作者:小楼夜听雨QAQ  
这篇文章主要介绍了Python桌面文件清理脚本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

需求

桌面临时文件较多时,直接删了不太放心,不删又显得很杂乱,故需要写一个脚本批量清理并备份这些鸡肋的文件。

所以脚本需要具有以下功能

1. 可以将桌面文件移动至指定文件夹(可配置)。

2. 可以设置例外文件,比如桌面图标不需要移动,部分常用的文件也不需要移动。

3. 出现同名文件时,不能直接覆盖,需要加一个日期后缀予以区分。例如更名为 helloworld-2022-08-30.txt

本来准备按照文件后缀名分文件夹存放的,但毕竟是临时文件,大概率还是需要定期删除的,分类后反而不利于检索。

实现

目录结构

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

代码

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

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

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

main.py主类

import os
import datetime
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 get_time():
    """
    获取当前年月日
    :return: 时间
    """
    return datetime.datetime.now().strftime('-%Y-%m-%d')
 
 
def get_rename(path):
    """
    文件重命名
    :param path: 路径
    :return: 命名后的路径
    """
    if os.path.isdir(path):
        return path + get_time()
    else:
        return os.path.splitext(path)[0] + get_time() + get_suffix(path)
 
 
def move():
    """
    移动文件
    """
    dirs = get_source_dirs()
    target_base_path = get_target_path()
    desk_url = get_desktop()
    if not os.path.exists(target_base_path):
        os.makedirs(target_base_path)
 
    for dir in dirs:
        path = os.path.join(desk_url, dir)
        target_path = os.path.join(target_base_path, dir)
        if os.path.exists(target_path):
            # 如果有同名文件,则加一个日期后缀
            target_path = get_rename(target_path)
        shutil.move(path, target_path)
 
 
if __name__ == '__main__':
    move()

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于命令行执行Python脚本的传参方式

    关于命令行执行Python脚本的传参方式

    这篇文章主要介绍了关于命令行执行Python脚本的传参方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • python批量提交沙箱问题实例

    python批量提交沙箱问题实例

    这篇文章主要介绍了python批量提交沙箱问题实例,针对批量提交沙箱出现的问题进行了针对性的分析与实例讲解,具有不错的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • pytorch dataset实战案例之读取数据集的代码

    pytorch dataset实战案例之读取数据集的代码

    这篇文章主要介绍了pytorch dataset实战案例读取数据集的相关知识,这段代码可以作为读取数据集的一个DataSet类的基础类,可以扩充进行修改,以后有类似需要可以拿过来修改,本文结合实例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10
  • Python排序算法之选择排序定义与用法示例

    Python排序算法之选择排序定义与用法示例

    这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能、原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • pytorch::Dataloader中的迭代器和生成器应用详解

    pytorch::Dataloader中的迭代器和生成器应用详解

    这篇文章主要介绍了pytorch::Dataloader中的迭代器和生成器应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python将图片转换为字符画的方法

    Python将图片转换为字符画的方法

    这篇文章主要为大家详细介绍了Python将图片转换为字符画的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python 自动备份脚本的示例代码

    Python 自动备份脚本的示例代码

    这篇文章主要介绍了Python 自动备份脚本,本文结合代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • OpenCV实现单目摄像头对图像目标测距

    OpenCV实现单目摄像头对图像目标测距

    这篇文章主要为大家详细介绍了OpenCV实现单目摄像头对图像目标测距,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 对Python通过pypyodbc访问Access数据库的方法详解

    对Python通过pypyodbc访问Access数据库的方法详解

    今天小编就为大家分享一篇对Python通过pypyodbc访问Access数据库的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python使用OpenCV实现虚拟缩放效果

    Python使用OpenCV实现虚拟缩放效果

    OpenCV 彻底改变了整个图像处理领域。从图像分类到对象检测,我们不仅可以使用 OpenCV 库做一些很酷的事情,而且还可以构建一流的应用程序。本文将用OpenCV实现虚拟缩放,需要的可以参考一下
    2022-02-02

最新评论