背景
很多时候我们图方便,每次下载或者新建了内容都会放在桌面上,久而久之,可能桌面就会变成下面这副场景了,实在受不了,你可能就会开始收拾这个桌面了,有很多现成的工具可以帮助我们解决这个问题,但是作为一个爱编程的人,我们是不是也想试一试自己通过编程去解决这个问题,并且定制化程度还可以很高——想怎样整理就怎样整理。
我的整体思路是这样的:
1.列出当前文件夹下的所有文件。
2.判断是目录文件夹还是个体文件。
3.如果是目录文件夹,那么判断是空的还是非空的,空的就删除掉,非空就不处理。
4.如果是个体文件,把这些文件进行分类:图片,文档文件等。
5.创建两个文件夹分别是存放文档文件和图片文件,把对应的文件移动到对应的文件夹,这样基本上就实现一个简单的整理功能了。
这里我自己创建了一个比较乱的test文件夹作为我们测试的内容。
下面是具体实现代码:
1.列出所有文件
代码:import os
# 要处理的文件位置
process_dir = r’C:\Users\codemao\Desktop\python课程\文件和目录操作\test’
# 创建一个文件变量files存储所有文件名
files=os.listdir(process_dir)
# 打印查看效果
print(files)
效果:
2.判断是目录文件夹还是个体文件。
代码:import os
# 要处理的文件位置
process_dir = r’C:\Users\codemao\Desktop\python课程\文件和目录操作\test’
# 创建一个文件变量files存储所有文件名
files=os.listdir(process_dir)
for file in files:
# 如果是目录文件夹
if os.path.isdir(os.path.join(process_dir,file)):
# 如果是空文件夹
if not os.listdir(os.path.join(process_dir,file)):
print(file, “—-是—空文件夹”)
#不是空文件夹
else:
print(file, “—-不是—空文件夹”)
else:
print(file, “—是—个体文件”)
效果:
3.空的就删除掉,非空就不处理
代码:import os
# 要处理的文件位置
process_dir = r’C:\Users\codemao\Desktop\python课程\文件和目录操作\test’
# 创建一个文件变量files存储所有文件名
files=os.listdir(process_dir)
for file in files:
# 如果是文件夹
if os.path.isdir(os.path.join(process_dir,file)):
# 如果是空文件夹删除
if not os.listdir(os.path.join(process_dir,file)):
os.rmdir(os.path.join(process_dir,file))
print(file, “空文件夹已删除”)
else:
print(file, “—是—个体文件”)
4.文件分类
如果是个体文件,把这些文件进行分类:图片,文档文件等代码:import os
# 要处理的文件位置
process_dir = r’C:\Users\codemao\Desktop\python课程\文件和目录操作\test’
# 创建一个文件变量files存储所有文件名
files=os.listdir(process_dir)
# 文件后缀列表
doc_file_ext=[“.pdf”,”.txt”,”.py”,”.md”,”.zip”,”.rar”,”.xls”,”.doc”]
image_file_ext=[“.png”,”.jpg”,”.gif”]
for file in files:
# 如果是文件夹
if os.path.isdir(os.path.join(process_dir,file)):
# 如果是空文件夹删除
if not os.listdir(os.path.join(process_dir,file)):
# os.rmdir(os.path.join(process_dir,file))
print(file, “空文件夹已删除”)
else:
filename,ext=os.path.splitext(file)
if ext in doc_file_ext:
print(file, “—是文档文件”)
elif ext in image_file_ext:
print(file, “—是图片文件”)
效果:
5.创建文件移动图片
创建两个文件夹分别是存放文档文件和图片文件,把对应的文件移动到对应的文件夹,这样基本上就实现一个简单的整理功能了。
完整代码:import os
import shutil
# 要处理的文件位置
process_dir = r’C:\Users\codemao\Desktop\python课程\文件和目录操作\test’
# 列出文件
files=os.listdir(process_dir)
#存放文件的位置
image_file=os.path.join(process_dir,”images”)
doc_file=os.path.join(process_dir,”docs”)
# 如果不存在就创建
if not os.path.exists(image_file):
os.mkdir(image_file)
if not os.path.exists(doc_file):
os.mkdir(doc_file)
# 文件后缀列表
doc_file_ext=[“.pdf”,”.txt”,”.py”,”.md”,”.zip”,”.rar”,”.xls”,”.doc”]
image_file_ext=[“.png”,”.jpg”,”.gif”]
for file in files:
# 如果是文件夹
if os.path.isdir(os.path.join(process_dir,file)):
# 如果是空文件夹删除
if not os.listdir(os.path.join(process_dir,file)):
os.rmdir(os.path.join(process_dir,file))
print(file, “空文件夹已删除”)
else:
# 获取文件前缀 后缀
filename,ext=os.path.splitext(file)
if ext in doc_file_ext:
# 移动文件到对应的文件夹
shutil.move(os.path.join(process_dir,file),doc_file)
elif ext in image_file_ext:
# 移动文件到对应的文件夹
shutil.move(os.path.join(process_dir,file),image_file)
最终效果:
完整代码图片: