Python桌面文件清理脚本分享
作者:小楼夜听雨QAQ 发布时间:2022-10-11 03:13:23
标签: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 执行脚本即可
来源:https://blog.csdn.net/qq_37855749/article/details/126596680
0
投稿
猜你喜欢
- 一、很多读者Python安装完成之后,想要下载相关的包,例如:numpy、pandas等Python中这些基础的包,但是,发现pip根本用不
- 网页的圆角处理,其实最开始的九宫格的表格处理是挺方便的,只是现在都不用表格布局了,自然就被非法取缔了。呵呵。微软的有VML画圆角,由于只是它
- Python2.x使用过程中,中文乱码解决最耳熟能详的方法就是在代码前加上#-*- coding:utf-8 –*-那么为什么需要这么做呢?
- 一、了解seleniumSelenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safar等浏览
- 1.引言本文是Python生态系统中一些有用技巧的分享。大多数技巧只是使用标准库中的包,但其他一些技巧会涉及一些第三方包。在开始阅读本文内容
- 使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。1.安装openssl和php的openssl
- 1、封装的理解封装(Encapsulation):属性和方法的抽象属性的抽象:对类的属性(变量)进行定义、隔离和保护分为私有属性和公开属性:
- 运维平台导入数据这一功能实在是太重要了,我敢说在没有建自己的cmdb平台前,大多数公司管理服务器信息肯定是表格,用表格最麻烦的就是有点更新就
- Python int() 函数描述int() 函数用于将一个字符串或数字转换为整型。语法以下是 int() 方法的语法:class int(
- JavaScript Length 字符长度函数,在很多时间我们会用length函数了,因为你得前台判断一个用户输入
- Python项目文件中安装 setup.py安装 setup.py 的过程与安装其他的 Python 包的过程类似。首先,你需要下载或者使用
- 1、新建DLL打开VB6-->文件-->新建工程-->选择ActiveX DLL-->确定2、将默认工程、类重命名工
- 用下面代码可实现:<%Dim writeDim fileSysObj, tf, readrea
- 一 Process对象的join方法在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情
- 本文实例讲述了JS实现淘宝支付宝网站的控制台菜单效果。分享给大家供大家参考。具体如下:这是一款支付宝网站中的控制台总菜单,可实现动画效果的显
- 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
- EXISTS该函数返回集合中第一个元素的索引,如果集合为空,返回NULLNULLNULLCollection.EXISTS(index)CO
- 在机器学习的时候,当开始就遇到问题,pycharm启动jupyter notebook之后,浏览器前两行代码执行的好好的,后面就不执行了,上
- 什么是EfficientNet模型2019年,谷歌新出EfficientNet,在其它网络的基础上,大幅度的缩小了参数的同时提高了预测准确度
- 二元函数为y=x1^2+x2^2,x∈[-5,5]NIND=121; %初始种群的个数(Number of individual