今天偶尔上服务器一看,我靠,我的文件真的乱!
这还得了了,我要是长年累月的去上传文件,这不得堆积成山了,到时候我想去维护都很难了。我是shigen, 作为强迫症患者,我哪能忍,必须整治,必须整治!
整改
我要采取新的命名方式了,年月/文件名,意思是按照年月对文件进行分组,废话不多说,上代码。这次我选取的是shell脚本,当然,shigen有写代码的神器在手。
#!/bin/bash
# 匹配的文件名模式
file_pattern="2023*.png"
# 遍历所有匹配的文件
for file_name in $file_pattern; do
# 提取年份和月份
year_month="${file_name:0:6}"
# 创建目标文件夹路径
target_dir="./$year_month"
# 如果目标文件夹不存在,则创建它
mkdir -p "$target_dir"
# 移动文件
mv "$file_name" "$target_dir"
echo "文件已移动到目标文件夹:$target_dir/$file_name"
done
其实也挺简单,根据文件名模式找到符合条件的文件,再去截取文件名获得文件的年月,之后就是创建文件夹移动了。最终的效果如下:
可以看到文件是按照年月来分级的,目前的话我的文件主要分布在两个文件夹里,正好原来保存的也是保存的两个月的文件。但是治标不治本,根治它还得在代码里。
file_save_path = os.path.join(base_path, datetime.now().strftime('%Y%m%d%H%M%S') +'.png')
明显看到,这个是直接放在base_path
下边了。和我预想的结果差了很多了。这里就是根本,必须得去修改一下
now = datetime.now()
cur_base_path = os.path.join(base_path, now.strftime("%Y%m%d"))
if not os.path.exists(cur_base_path):
os.makedirs(cur_base_path)
file_save_path = os.path.join(cur_base_path, now.strftime('%Y%m%d%H%M%S') +'.png')
标签:专治,脚本,文件,base,杂乱,file,path,now,os
From: https://blog.51cto.com/u_16039040/7150588