首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python整理桌面文件

python整理桌面文件

作者头像
叶子陪你玩
发布于 2020-03-12 07:26:54
发布于 2020-03-12 07:26:54
1.5K00
代码可运行
举报
运行总次数:0
代码可运行
背景

很多时候我们图方便,每次下载或者新建了内容都会放在桌面上,久而久之,可能桌面就会变成下面这副场景了,实在受不了,你可能就会开始收拾这个桌面了,有很多现成的工具可以帮助我们解决这个问题,但是作为一个爱编程的人,我们是不是也想试一试自己通过编程去解决这个问题,并且定制化程度还可以很高——想怎样整理就怎样整理。

我的整体思路是这样的:

1.列出当前文件夹下的所有文件。

2.判断是目录文件夹还是个体文件。

3.如果是目录文件夹,那么判断是空的还是非空的,空的就删除掉,非空就不处理。

4.如果是个体文件,把这些文件进行分类:图片,文档文件等。

5.创建两个文件夹分别是存放文档文件和图片文件,把对应的文件移动到对应的文件夹,这样基本上就实现一个简单的整理功能了。

这里我自己创建了一个比较乱的test文件夹作为我们测试的内容。

下面是具体实现代码:

1.列出所有文件

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

# 要处理的文件位置
process_dir = r'C:\Users\codemao\Desktop\python课程\文件和目录操作\test'
# 创建一个文件变量files存储所有文件名
files=os.listdir(process_dir)
# 打印查看效果
print(files)

效果:

2.判断是目录文件夹还是个体文件。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.空的就删除掉,非空就不处理

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.文件分类

如果是个体文件,把这些文件进行分类:图片,文档文件等代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.创建文件移动图片

创建两个文件夹分别是存放文档文件和图片文件,把对应的文件移动到对应的文件夹,这样基本上就实现一个简单的整理功能了。

完整代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

最终效果:

完整代码图片:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
LV.1
这个人很懒,什么都没有留下~
目录
  • 1.列出所有文件
  • 2.判断是目录文件夹还是个体文件。
  • 3.空的就删除掉,非空就不处理
  • 4.文件分类
  • 5.创建文件移动图片
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档