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()函数拼接分类文件夹路径:图片文件# 并赋值给变量targetPathtargetPath = os.path.join(desktopPath, "图片文件")elif extension in [".avi", ".mp4", ".wmv", ".mov", ".flv"]:# 使用os.path.join()函数拼接分类文件夹路径:视频文件# 并赋值给变量targetPathtargetPath = 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和文件名# 并赋值给变量itemPathitemPath = os.path.join(desktopPath, item)# 判断当itemPath不是文件夹时。if not os.path.isdir(itemPath):# 使用shutil.move()函数移动文件到targetPath路径shutil.move(itemPath, targetPath)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hackmyvm-buster

题目地址 信息收集 主机发现 ┌──(root㉿kali)-[/home/kali] └─# arp-scan -I eth1 192.168.56.0/24 Interface: eth1, type: EN10MB, MAC: 00:0c:29:34:da:f5, IPv4: 192.168.56.103 WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission denied WARNING: C…

FS800DTU联动OneNET平台数据可视化View

目录 1 前言 2 环境搭建 2.1 硬件准备 2.2 软件环境 2.3 硬件连接 3 注册OneNET云平台并建立物模型 3.1 参数获取 3.2 连接OneNET 3.3上报数据 4 数据可视化View 4.1 用户信息获取 4.2 启用数据可视化View 4.3 创建项目 4.4 编辑项目 4.5 新增数据源 4.6 数据过滤器配置 4.6 项…

Dockerfile 中的 COPY 语句:作用与使用详解

在 Docker 的构建过程中,Dockerfile 是一个核心文件,它定义了镜像的构建步骤和内容。其中,COPY 语句是一个非常重要的指令,用于将文件或目录从构建上下文(通常是 Dockerfile 所在的目录及其子目录)复制到容…

大白话Vuex 核心概念(state、mutations、actions)的使用案例与原理

大白话Vuex 核心概念(state、mutations、actions)的使用案例与原理 Vuex是Vue.js应用程序中专门用来管理状态的工具,就好像是一个大管家,帮你把项目里一些重要的数据和操作管理得井井有条。下面用大白话结合案例来介绍Vuex核心概…

机器学习介绍与数据集

一、机器学习介绍与定义 1.1 机器学习定义 机器学习(Machine Learning)是让计算机从数据中自动学习规律,并依据这些规律对未来数据进行预测的技术。它涵盖聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning&#xf…

大模型训练——pycharm连接实验室服务器

一、引言 我们在运行或者复现大佬论文代码的时候,笔记本的算力不够,需要使用实验室的服务器进行运行。可以直接在服务器的终端上执行,但是这样的话代码调试就不方便。而我们可以使用 pycharm 连接到服务器,既方便了代码调试&…

【Linux】进程优先级 | 进程调度(三)

目录 前言: 一、进程优先级: 1.通过nice值修改优先级: 二、进程切换: 三、上下文数据 四、Linux真实调度算法: 五、bitmap位图: 六、命令总结: 总结: 前言: 我…

【redis】数据类型之hyperloglog

Redis的HyperLogLog(HLL)是一种高效的概率数据结构,也是一种基于字符串的数据结构,用于估计大数据集的唯一元素数量(基数统计)。它通过极低的内存占用(约 12KB)实现接近线性的时间复…

【C语言】第八期——指针、二维数组与字符串

目录 1 初始指针 2 获取变量的地址 3 定义指针变量、取地址、取值 3.1 定义指针变量 3.2 取地址、取值 4 对指针变量进行读写操作 5 指针变量作为函数参数 6 数组与指针 6.1 指针元素指向数组 6.2 指针加减运算(了解) 6.2.1 指针加减具体数字…

SpringBoot——生成Excel文件

在Springboot以及其他的一些项目中&#xff0c;或许我们可能需要将数据查询出来进行生成Excel文件进行数据的展示&#xff0c;或者用于进行邮箱发送进行附件添加 依赖引入 此处demo使用maven依赖进行使用 <dependency><groupId>org.apache.poi</groupId>&…

mac 下 java 调用 gurobi 不能加载 jar

在 mac 电脑中的 java 始终不能加载 gurobi 的 jar 包&#xff0c;java 的开发软件 eclipse&#xff0c;idea 总是显示找不到 gurobi 的 jar 包&#xff0c;但是 jar 包明明就在那里。 摸索了三个小时&#xff0c;最后发现原因竟然是&#xff1a; jar 包太新&#xff0c;替换…

服务端配置TCP探活,超出探活时间后的行为?

server端启动 &#xff08;完整源码在最后&#xff09; 配置探活 setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int)); // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int)); // 探测间隔10秒…

LLC谐振变换器恒压恒流双竞争闭环simulink仿真

1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Ra&#xff09;软件。建议采用matlab2017 Ra及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff09;针对全桥LLC拓扑&#xff0c;利用Matlab软件搭建模型&#xff0c;分别对轻载&#xf…

MySQL 中如何查看 SQL 的执行计划?

SQL 语句前面使用 EXPLAIN 关键字&#xff1a; EXPLAIN SELECT * FROM users WHERE id 1; 字段 含义 id 查询的序号&#xff08;如果是子查询或联合查询&#xff0c;会有多个 id&#xff09;。 select_type 查询的类型&#xff08;简单查询、子查询、联合查询等&#xff…

Discourse 中集成 Claude 3.7 Sonnet 模型

如果 Discourse 实例已经接入了 Anthropic。 那么只需要在后台挑一个不希望继续使用的模型改下就好。 否则需要重新在 Discourse 实例中配置 AI&#xff0c;然后获得 Anthropic 的 key。 进入后台的 AI 然后选择 LLMs 虽然我们这里已经显示成 3.7 了&#xff0c;但实际上所有…

Oracle 12c Docker安装问题排查 sga_target 1536M is too small

一、问题描述 在虚拟机环境&#xff08;4核16GB内存&#xff09;上部署 truevoly/oracle-12c 容器镜像时&#xff0c;一切运行正常。然而&#xff0c;当在一台 128 核 CPU 和 512GB 内存的物理服务器上运行时&#xff0c;容器启动时出现了 ORA-00821 等错误&#xff0c;提示 S…

DeepSeek 提示词:高效的提示词设计

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

KIMI K1.5:大规模强化学习在大语言模型中的应用与工程实践

目录 1、核心技术创新:长上下文强化学习 2、策略优化的技术细节 2.1、在线镜像下降变体 2.2、长度惩罚机制 2.3、智能采样策略 3、工程架构创新 3.1、混合部署框架 3.2、代码沙箱与奖励模型 3.3、分布式系统架构 4、实验成果与性能提升 5、结论与未来展望 大语言模…

从 0 到 1:使用 Docker 部署个人博客系统

引言 在当今数字化时代&#xff0c;拥有一个个人博客来记录自己的学习、生活和见解是一件非常有意义的事情。然而&#xff0c;传统的博客部署方式往往涉及复杂的环境配置和依赖管理&#xff0c;容易让人望而却步。而 Docker 的出现&#xff0c;为我们提供了一种简单、高效的解…

多进程网络服务端详细说明文档

多进程网络服务端详细说明文档 一、概述 本项目实现了一个基于多进程的 TCP 网络服务端&#xff0c;主要用于处理多个客户端的连接请求。为了提高代码的可维护性和可复用性&#xff0c;分成了头文件&#xff08;.h&#xff09;和多个源文件&#xff08;.cpp&#xff09;。具体…