当前位置: 首页 > news >正文

python整理文件下

我们使用 os.path.join() 函数拼接出文件要移动的目标地址。

并使用 os.path.exists() 函数配合 not 关键字找到未创建的文件夹。

这节课,我们会先创建文件夹,然后再移动文件到目标文件夹。如果文件夹不存在,我们需要先创建文件夹,再移动文件。

创建文件夹可以使用 os.mkdir() 函数:将要创建的文件夹路径作为参数传入函数中即可。

 

os.mkdir("/Users/yequ/Downloads/音频文件")

 加上 os.mkdir(targetPath) 即可创建所有不存在的文件夹。

 在开始正式移动文件到目标文件夹之前,我们需要再思考一个问题。

在代码运行之前,阿文的下载文件夹里已经存在一些分类文件夹了,比如图例中“PDF文件”这个文件夹就是已经存在的。

这样的话,在程序运行时,按目前的逻辑,计算机就会把这个文件夹分类为其他文件,因为这个文件夹没有后缀名。

 我们将要进行判断的文件路径传入到 os.path.isdir() 函数中,如果该路径是文件夹就会返回True,如果不是就返回False。

 要想移动文件,我们需要导入Python中另一个内置的模块 shutil ,然后使用 shutil.move() 函数来对文件进行移动。

shutil.move() 函数可以用来移动文件或文件夹。它接收两个参数,第一个参数是要移动的文件(夹)路径,第二个参数是目标文件(夹)的路径。

# 导入shutil模块
import shutil

# 准备移动的文件路径
srcPath = "/Users/yequ/Downloads/心动.MP3"

# 目标文件夹路径
targetPath = "/Users/yequ/Downloads/音频文件"

# 使用shutil.move()函数移动文件
shutil.move(srcPath, targetPath)
# 使用import导入os模块
import os

# 使用import导入shutil模块
import shutil

# 将阿文的下载文件夹路径 /Users/yequ/Desktop 赋值给变量desktopPath
desktopPath = "/Users/yequ/Desktop"

# 使用os.listdir()函数获取该路径下所有的文件(夹),并赋值给变量allItems
allItems = os.listdir(desktopPath)

# 使用for循环遍历所有文件(夹)
for item in allItems:
    # 获取文件后缀名
    extension = os.path.splitext(item)[1].lower()

    # 定义一个变量targetPath,用来表示准备移动到的文件夹路径

    targetPath = ""
    if extension in [".jpg", ".jpeg", ".gif", ".png", ".bmp"]:
        # 使用os.path.join()函数拼接分类文件夹路径:图片文件
        # 并赋值给变量targetPath
        targetPath = os.path.join(desktopPath, "图片文件")
    elif extension in [".avi", ".mp4", ".wmv", ".mov", ".flv"]:
        # 使用os.path.join()函数拼接分类文件夹路径:视频文件
        # 并赋值给变量targetPath
        targetPath = os.path.join(desktopPath, "视频文件")
    elif extension in [".wav", ".mp3", ".mid", ".ape", ".flac"]:
        # 使用os.path.join()函数拼接分类文件夹路径:音频文件
        targetPath = os.path.join(desktopPath, "音频文件")
    elif extension in [".pdf"]:
        # 使用os.path.join()函数拼接分类文件夹路径:PDF文件
        targetPath = os.path.join(desktopPath, "PDF文件")
    elif extension in [".docx", ".doc"]:
        # 使用os.path.join()函数拼接分类文件夹路径:Word文件
        targetPath = os.path.join(desktopPath, "Word文件")
    elif extension in [".xlsx", ".xls"]:
        # 使用os.path.join()函数拼接分类文件夹路径:Excel文件
        targetPath = os.path.join(desktopPath, "Excel文件")
    elif extension in [".pptx", ".ppt"]:
        # 使用os.path.join()函数拼接分类文件夹路径:PPT文件
        targetPath = os.path.join(desktopPath, "PPT文件")
    else:
        # 使用os.path.join()函数拼接分类文件夹路径:其他文件
        targetPath = os.path.join(desktopPath, "其他文件")
    # 判断当如果目标文件夹不存在
    if not os.path.exists(targetPath):
        # 使用os.mkdir()函数创建文件夹
        os.mkdir(targetPath)

    # 使用os.path.join()函数拼接desktopPath和文件名
    # 并赋值给变量itemPath
    itemPath = os.path.join(desktopPath, item)

    # 判断当itemPath不是文件夹时。
    if not os.path.isdir(itemPath):
        # 使用shutil.move()函数移动文件到targetPath路径
        shutil.move(itemPath, targetPath)

 

相关文章:

  • 对 flask 框架中的全局变量 request 探究
  • SQL_优化
  • JavaScript算法-合并两个有序链表
  • 多进程网络服务端详细说明文档
  • 计算机工具基础(五)——Vim
  • LeetCode 解题思路 3(Hot 100)
  • 操作定制万年历投屏模拟点单叫号器
  • 【机器学习】 [代码篇] 30. KNN - sklearn 以及 自定义KNN 的实现
  • 【Elasticsearch】script_fields 和 runtime_fields的区别
  • 游戏引擎学习第124天
  • Graph and GNN——图的表示与图神经网络的介绍与应用
  • GateWay
  • Vue3核心编译库@vuecompiler-core内容分享
  • PDF扫描档智能方向识别:多模型投票机制的实践测试 救活古典书籍
  • 每日一题-设计浏览器历史记录,关于栈的应用
  • 鸿蒙开发第4篇__关于在鸿蒙应用中使用Java语言进行设计
  • 十、大数据资源平台功能架构
  • 使用 frp 实现内网穿透:从零到一的完整指南
  • Uniapp 小程序复制、粘贴功能实现
  • c++:多态
  • 陈文清:推进扫黑除恶常态化走深走实,有力回应人民群众对安居乐业的新期待
  • 中国空间站首批在轨繁育果蝇即将返回地球,有望获得多项科学成果
  • 丁俊晖连续7年止步世锦赛16强,中国军团到了接棒的时候
  • 呼伦贝尔市委常委、组织部长闫轶圣调任内蒙古交通集团党委副书记
  • 四川省社科联期刊:不建议在读硕士、博士将导师挂名为第一作者
  • 安阳一村支书微信群骂村民被警方行拘,辩称对方先“污蔑造谣”