前言:
[完美解决MsgAttach文件太乱的问题]
[完美解决微信在C盘文件太大的问题]
最近我发现微信接收文件太多太乱, 你看微信FileStorage MsgAttach文件夹
我记得之前不是这样的啊,
而且经过一段时间后,C 盘就占满了
这让我怎么找文件啊, 真让人头大. 所以我写了一个python程序, 可以将这些目录里面的文件全部移动到指定目录.
下面开始写Python代码
import sys
import os
from os import path
from typing import List, Tuple
files_list: List[Tuple[str,str]] = []
def scaner_file(url, catogroy, remain_catogroy=False):
# print(url, catogroy, remain_catogroy)
file = os.listdir(url)
for f in file:
if f.startswith("$"):
continue
if f.endswith(".dat"):
continue
real_url = path.join(url, f)
# print(real_url)
if path.isfile(real_url):
# print(path.abspath(real_url))
if remain_catogroy:
files_list.append((path.abspath(real_url), path.abspath(real_url)))
else:
files_list.append((path.abspath(real_url), path.join(catogroy, f)))
# 如果是文件,则以绝度路径的方式输出
elif path.isdir(real_url):
# 如果是目录,则是地柜调研自定义函数 scaner_file (url)进行多次
scaner_file(real_url, catogroy, remain_catogroy)
else:
print("其他情况")
pass
def copy_file(source_folder: str, target_folder):
if target_folder.startswith(source_folder):
print("请勿复制!!")
return None
scaner_file(source_folder, source_folder)
for f in files_list:
target_f = f[1].replace(source_folder, target_folder)
print(f[0],"----------------------", target_f)
os.system("cp \"{}\" \"{}\"".format(f[0],target_f))
if __name__ == '__main__':
if len(sys.argv) < 3:
print(str(sys.argv))
print("source_folder target_folder")
sys.exit(0)
source_folder = sys.argv[1]
target_folder = sys.argv[2]
# copy_file(r"G:\games\WorkPython\match2\testfile",r"G:\games\WorkPython\match2\testfilout")
copy_file(source_folder, target_folder)
核心代码是 cp f1 f2 ... fn taget_file_or_folder
简单的讲是 cp file1 file2 把文件1 复制到 文件2
Windows 的复制命令是 copy,
所以要小伙伴们的电脑没有 cp 命令 的话,
需要将 os.system("cp \"{}\" \"{}\"".format(f[0],target_f))
替换成 os.system("copy \"{}\" \"{}\"".format(f[0],target_f))
程序运行方法 python main.py "要被整理的文件夹" "要放的地方文件夹"
只要把两个参数替换成你要的文件夹,
再也不用担心文件夹太乱了.
小伙伴们如果觉得有用的话, 可以点赞收藏哦!
如果有不懂得地方, 欢迎留言