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

编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)

系列文章目录

编程小白的自学笔记十三(python办公自动化读写文件)

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

编程小白的自学笔记十(python爬虫入门二+实例代码详解) 

 编程小白的自学笔记九(python爬虫入门+代码详解) 

目录

系列文章目录

文章目录

前言

一、os.scandir()

二、临时文件和临时文件夹

1.创建临时文件

 2.创建临时文件夹

三、创建文件夹和多层文件夹

 1、创建文件夹

 2、创建多层文件夹

 四、复制文件和文件夹

 五、移动文件和文件夹

总结


前言

在自学笔记一的时候我已经学了文件的读写,那是学的基础,现在是开始学习办公自动化,要深入学习了。


一、os.scandir()

os.scandir() 是 Python 中的一个函数,用于获取文件系统中目录的迭代器。它可以遍历指定目录中的所有条目,包括文件和子目录。os.scandir() 方法返回一个 os.DirEntry 迭代器对象,它非常轻巧方便,并且能告诉你迭代文件的路径。

 使用 os.scandir() 方法比使用 os.walk() 方法更高效,因为 os.walk() 方法会遍历整个目录树,而 os.scandir() 方法只会遍历指定目录。

 os.scandir() 返回的迭代器对象需要用for循环来调用,我们用代码来看看输出的是什么:

import os
for file in os.scandir():print(file)

 输出结果为:

<DirEntry 'Dome.py'>

<DirEntry 'new.xls'>

<DirEntry '表格合并.py'>

 将目录下所有的文件都输出了,我们可以继续调用stat()方法,查看文件的属性。代码如下:

import os
for file in os.scandir():print(file.stat())

 输出为:

 

 可以看出,内容里面包含文件的大小,还有文件的创建时间、修改时间和访问时间。我们来试试输出文件的创建时间:

import os
for file in os.scandir():print(file.stat().st_ctime)

确实输出时间了,但是是我们看不懂的时间:

1688730869.341578

1687012891.5642674

1687068649.1589775

 下面我们使用datetime,将时间格式改成我们日常生活中使用的时间格式:

import os
import datetime
for file in os.scandir():print(datetime.datetime.fromtimestamp(file.stat().st_ctime))

输出为:

2023-07-07 19:54:29.341578

2023-06-17 22:41:31.564267

2023-06-18 14:10:49.158978

二、临时文件和临时文件夹

 tempfile()是Python标准库中的一个模块,用于创建临时文件和目录。它可以跨平台使用,包括Windows、Linux和macOS等。该模块提供了四个函数:TemporaryFile()、NamedTemporaryFile()、TemporaryDirectory()和SpooledTemporaryFile(),这些函数都带有自动清理功能,可用作上下文管理器。其中,TemporaryFile()和NamedTemporaryFile()是最常见的两个函数,它们都可以创建一个临时文件对象,当文件对象被关闭时,临时文件将被自动删除。而TemporaryDirectory()和SpooledTemporaryFile()则是用于创建临时目录和缓冲区文件的函数。

1.创建临时文件

我们来看一个简单的代码,学习下怎样创建临时文件: 

from tempfile import TemporaryFile
with TemporaryFile('w+') as file:file.write('我是一个临时文件')print(file.name)file.seek(0)
print(file.readlines())

 输出结果为:

C:\Users\ADMINI~1\AppData\Local\Temp\tmpdms710yj

['我是一个临时文件']

 可以看出,这个文件的地址是“C:\Users\ADMINI~1\AppData\Local\Temp\tmpdms710yj”,file.seek(0)的意思是把光标移动到最开始的位置,然后读取,我们可以试试是否是从光标的位置读取,例如下面代码:

from tempfile import TemporaryFile
with TemporaryFile('w+') as file:file.write('我是一个临时文件')print(file.name)file.seek(4)print(file.readlines())

 按照我们上面说的,应该是从第四个字节开始读取,输出结果是

C:\Users\ADMINI~1\AppData\Local\Temp\tmp82yzs4dc

['一个临时文件']

 我们可以看见文件的地址换了,说明确实是临时文件,之前的文件已经删除,同时一个汉字两个字节,所以“我是”没有了,从后面开始读取,内容为“一个临时文件”。

 2.创建临时文件夹

下面我们再看看临时文件夹怎么创建,代码如下:

from tempfile import TemporaryDirectory
with TemporaryDirectory() as t:print(t)

输出结果为:

C:\Users\ADMINI~1\AppData\Local\Temp\tmpcy74dyo0

很明显,这就是临时文件夹的位置,我们再运行一次程序,理论上文件夹的名字是要变化的,是创建了一个新文件夹,我们来试下,输出结果为:

C:\Users\ADMINI~1\AppData\Local\Temp\tmpx_kr8bau

三、创建文件夹和多层文件夹

 1、创建文件夹

 首先使用mkdir创建文件夹,代码如下

Import os
os.mkdir(‘文件夹1’)

 这时我们创建了文件夹名字叫“文件夹1”的文件夹,这里要注意,不能创建已有的文件夹,系统会报错。

 2、创建多层文件夹

 在Python中,可以使用`os.makedirs()`函数来创建文件夹和多层文件夹。该函数可以递归地创建多级目录,如果目录已经存在,则不会报错。

 以下是使用`os.makedirs()`函数创建文件夹和多层文件夹的示例代码:

import os# 创建一个名为"my_folder"的文件夹
if not os.path.exists("my_folder"):os.makedirs("my_folder")# 在"my_folder"文件夹下创建一个名为"sub_folder"的子文件夹
if not os.path.exists("my_folder/sub_folder"):os.makedirs("my_folder/sub_folder")# 在"my_folder/sub_folder"文件夹下创建一个名为"grand_sub_folder"的子文件夹
if not os.path.exists("my_folder/sub_folder/grand_sub_folder"):os.makedirs("my_folder/sub_folder/grand_sub_folder")

 在上面的代码中,我们首先检查是否存在名为"my_folder"的文件夹,如果不存在,则使用`os.makedirs()`函数创建它。然后,我们在"my_folder"文件夹下创建一个名为"sub_folder"的子文件夹,并在其中创建一个名为"grand_sub_folder"的子文件夹。注意,在创建多层文件夹时,需要使用相对路径或绝对路径来指定要创建的文件夹名称。

其实可以直接创建最里层的文件夹,代码如下

Import os
os.makedirs(‘第一层文件夹/第二层文件夹/第三层文件夹’)

这样就直接把第一层文件夹、第二层文件夹和第三层文件夹都创建出来了

 四、复制文件和文件夹

 在Python中,我们可以使用`shutil`模块中的函数来复制文件和文件夹。对于文件,我们可以使用`shutil.copy()`函数来复制文件,它接受两个参数:源文件路径和目标文件路径。对于文件夹,我们可以使用`shutil.copytree()`函数来复制整个文件夹,它也接受两个参数:源文件夹路径和目标文件夹路径。

 以下是一个示例代码,演示了如何使用`shutil`模块中的函数来复制文件和文件夹:

import shutil# 复制文件
shutil.copy('source_file.txt', 'destination_file.txt')# 复制文件夹
shutil.copytree('source_folder', 'destination_folder')

 在上面的代码中,我们首先导入了`shutil`模块。然后,我们使用`shutil.copy()`函数将名为"source_file.txt"的文件复制到同样的位置,并重命名为"destination_file.txt"的新文件。接下来,我们使用`shutil.copytree()`函数将名为"source_folder"的文件夹复制到名为"destination_folder"的新文件夹中。请注意,如果目标文件夹不存在,则会自动创建它,如果目标文件夹已存在就会报错。

 五、移动文件和文件夹

 在Python中,我们可以使用`shutil`模块中的函数来移动文件和文件夹。对于文件,我们可以使用`shutil.move()`函数来移动文件,它接受两个参数:源文件路径和目标文件路径。对于文件夹,我们可以使用`shutil.rmtree()`函数先删除原文件夹,然后使用`shutil.copytree()`函数将文件夹复制到新位置,最后使用`os.remove()`函数删除原文件夹。

 以下是一个示例代码,演示了如何使用`shutil`模块中的函数来移动文件和文件夹:

import shutil
import os# 移动文件
shutil.move('source_file.txt', 'destination_file.txt')# 移动文件夹
src_folder = 'source_folder'
dst_folder = 'destination_folder'
if os.path.exists(src_folder):shutil.rmtree(src_folder)
shutil.copytree(src_folder, dst_folder)
os.remove(src_folder)

 在上面的代码中,我们首先导入了`shutil`和`os`模块。然后,我们使用`shutil.move()`函数将名为"source_file.txt"的文件移动到名为"destination_file.txt"的新文件中。接下来,我们定义了源文件夹路径`src_folder`和目标文件夹路径`dst_folder`,并检查源文件夹是否存在。如果存在,则使用`shutil.rmtree()`函数删除它。然后,我们使用`shutil.copytree()`函数将源文件夹复制到目标文件夹。最后,我们使用`os.remove()`函数删除源文件夹。


总结

相关文章:

编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)

系列文章目录 编程小白的自学笔记十三&#xff08;python办公自动化读写文件&#xff09; 编程小白的自学笔记十二&#xff08;python爬虫入门四Selenium的使用实例二&#xff09; 编程小白的自学笔记十一&#xff08;python爬虫入门三Selenium的使用实例详解&#xff09; …...

MySQL使用Xtrabackup备份到AWS存储桶

1.安装Xtrabackup cd /tmp wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm yum -y localinstall percona-xtrabackup-80-8.0.33-28.1.el7.x86…...

(高阶)Redis 7 第11讲 BIGKEY 优化篇

面试题 问题答案如何在海量数据中查询某一固定前缀的Keyscan生产环境如何限制 keys */FLUSHDB/FLUSHALL 等危险命令,防止误删误用# 修改配置文件 rename-command keys "" rename-command flushdb "" rename-command flushall ""如何使用MEMORY U…...

一阶差分和二阶差分概念及其举例

一阶差分和二阶差分概念及其举例 目录 一阶差分和二阶差分概念及其举例1、一阶差分1.1 概念1.2 举例 2、二阶差分2.1 概念2.2 举例 1、一阶差分 1.1 概念 一阶差分是指对一个数列中的每个元素&#xff0c;计算其与其前一个元素之差的操作。 1.2 举例 举例来说&#xff0c;对…...

使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常

目录 一 自定义异常二 自定义注解三 注解切面处理类四 使用 一 自定义异常 /*** 自定义参数为null异常*/ public class NoParamsException extends Exception {//用详细信息指定一个异常public NoParamsException(String message){super(message);}//用指定的详细信息和原因构…...

Kotlin(六) 类

目录 创建类 调用类 类的继承------open 构造函数 创建类 创建类和创建java文件一样&#xff0c;选择需要创建的目录New→Kotlin File/Class Kotlin中也是使用class关键字来声明一个类的&#xff0c;这一点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功…...

蓝桥杯官网练习题(灌溉)

题目描述 小蓝负责花园的灌溉工作。 花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。 小蓝可以控制一个按钮同时打开所有的出水管&#xff0c;打开时&#xff0c;有出水管的位置可以被认为已经灌溉好。 每经过一分钟&#xff0c;水就会向四面扩展…...

数据结构:树的概念和结构

文章目录 1. 树的概念2. 树的结构3. 树的相关概念4. 树的表示孩子表示法双亲表示法孩子兄弟表示法 5. 树在实际中的应用5. 树在实际中的应用 1. 树的概念 树是一种非线性的数据结构,它是由 n (n > 0)个有限结点组成一个具有层次关系的. 把它叫做树是因为它看起来像一棵倒挂的…...

【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型

问题: 栅格转面(矢量)时,ArcGIS窗口显示:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型. 原因: 栅格转面时输入的栅格数据集的字段必须是整型. 解决办法: 使用Spatial Analyst中的转为整型工具,将栅格数据转为整型后再进行栅格转面的操作…...

32 WEB漏洞-文件操作之文件下载读取全解

目录 介绍利用获取数据库配置文件文件名&#xff0c;参数值&#xff0c;目录符号 涉及案例:Pikachu-文件下载测试-参数Zdns-文件下载真实测试-功能点小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现-比赛百度杯2017二月-Zone真题复现-比赛拓展 下载和读取都差不…...

Linux之history、tab、alias、命令执行顺序、管道符以及exit

目录 Linux之history、tab、alias、命令执行顺序、管道符以及exit history历史命令 格式 参数 修改默认记录历史命令条数 案例 案例1 --- 显示history历史记录中出现次数最高的top10 案例2 --- 增加history显示的时间信息 命令与文件名补全 --- tab 命令别名 格式 案…...

vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享

VCOMP100.DLL 是由微软打造的动态链接库&#xff0c;它对于一些图形密集型应用&#xff0c;例如Photoshop&#xff0c;以及多款知名游戏如巫师3的运行至关重要。 如果操作系统在启动应用程序时无法找到此vcomp100.dll&#xff0c;则会出现vcomp100.dll丢失或未找到错误。 如果D…...

Vue3自定义指令(directive)

文章目录 前言一、Vue3指令钩子函数二、自定义指令的两种方式1.局部使用例子1&#xff1a;鉴权例子2&#xff1a;拖拽 2.全局使用例子1&#xff1a;监听宽高指令例子2&#xff1a;监听是否出现在视口 总结 前言 此文章主要讲了vue3中自定义指令的使用&#xff0c;以及一些WebA…...

大数据课程L9——网站流量项目的实时业务处理代码

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握网站流量项目的SparkStreaming代码; ⚪ 掌握网站流量项目的HBaseUtil代码; ⚪ 掌握网站流量项目的MysqlUtil代码; ⚪ 掌握网站流量项目的LogBean代码; ⚪ 掌握网站流量项目的To…...

【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论

文章目录 一、爬取目标二、展示爬取结果三、爬虫代码四、同步视频五、附完整源码 您好&#xff0c;我是 马哥python说&#xff0c;一枚10年程序猿。 一、爬取目标 之前&#xff0c;我分享过一些B站的爬虫&#xff1a; 【Python爬虫案例】用Python爬取李子柒B站视频数据 【Pyt…...

mysql设置max_sp_recursion_depth,sql_mode

mysql 中设置 @@max_sp_recursion_depth select @@max_sp_recursion_depth; 今天在mysql 写存储过程递归调用时,发现老是报错(recovery limit 0(as set by the max_sp_recursion_depth));后来百度下发现 max_sp_recursion_depth设置不对; 这个修改涉及到全局和session级修…...

论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer

Related Work Self-supervised 学习目的是在无人工标注的情况下通过自定制的任务&#xff08;hand-crafted pretext tasks&#xff09;学习丰富的表示。 Abstract 使用自监督学习为卷积网络&#xff08;CNN&#xff09;学习表示已经被验证对视觉任务有效。作为CNN的一种替代…...

遥感数据与作物模型同化应用:PROSAIL模型、DSSAT模型、参数敏感性分析、数据同化算法、模型耦合、精度验证等主要环节

查看原文>>>遥感数据与作物模型同化实践技术应用 基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不同条件下作物生长发育及…...

Navicat15工具连接PostgreSQL15失败

1.错误现象及原因 错误现象&#xff1a; 错误原因&#xff1a; postgresql 15版本中 pg_database 系统表把 datlastsysoid 列删除了&#xff0c;所以造成了此错误。 2.解决方法 &#xff08;1&#xff09;将Navicat工具更新到官网最新版本。 &#xff08;2&#xff09;更换…...

开源AI家庭自动化助手-手机控制家庭智能家居服务

产品简介 将本地控制和隐私放在首位的开源家庭自动化。由全球开发者和 DIY 爱好者社区提供支持。非常适合在 Raspberry Pi 或本地服务器上运行。 功能介绍 1. 控制面板在控制面板&#xff0c;你可以查看家庭的灯光&#xff0c;温度&#xff0c;门铃&#xff0c;音响&#xf…...

解决CSS定位错乱/疑难杂症的终极绝招==》从样式污染开始排查

我们接手他人或者第三方项目的时候&#xff0c;有时候会遇到一些莫名其妙的问题&#xff1a; 明明自己的样式写的没有问题&#xff0c;但是网页上却显示的乱七八糟的&#xff0c;或者效果完全出不来。 案例如下&#xff1a; 这里只用了很典型的flex弹性布局&#xff0c;并没有…...

【笔记】《C++性能优化指南》Ch3 测量性能

【笔记】《C性能优化指南》Ch3 测量性能 1. 优化思想1.1 专业的性能测试流程1.2 优化准则1.2.1 90/10规则1.2.2 Amdahl定律 2. 进行实验2.1 记实验笔记2.2 测量基准性能并设定目标2.3 你只能改善你能够测量的 3. 分析程序执行3.1 实现分析器的方式3.2 分析器的优缺点 4. 测量长…...

2023大数据面试总结

文章目录 Flink&#xff08;SQL相关后面专题补充&#xff09;1. 把状态后端从FileSystem改为RocksDB后&#xff0c;Flink任务状态存储会发生哪些变化&#xff1f;2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite&#xff1f;3. watermark 到底…...

udev自动创建设备节点的机制

流程框图如下 自动创建 1 内核检测到设备插入后&#xff0c;会发送一个uevent事件到内核中&#xff0c;并提供有关硬件设备的信息。 2 udevd守护程序收到uevent事件后&#xff0c;创建一个设备类&#xff0c;&#xff08;向上提交目录信息&#xff09;&#xff0c;会在内核中…...

访问局域网内共享文件时报错0x80070043,找不到网络名

我是菜鸡 此篇只为分享一个我遇到的很简单的但是排查了好久的小问题。 我的网络环境是在校园网内&#xff0c; 自己的办公电脑设置了固定IP&#xff1a;10.11.128.236&#xff0c;同事电脑IP为&#xff1a;10.11.128.255 本人需要访问同事在局域网内分享的文件&#xff0c;…...

Java定时器

对于定时器的设定&#xff0c;想必大家在不少网站或者文章中见到吧&#xff0c;但是所谓的定时器如何去用Java代码来bianx呢&#xff1f;&#xff1f;感兴趣的老铁&#xff0c;可以看一下笔者这篇文章哟~~ 所谓的定时器就是闹钟&#xff01;&#xff01; 设定一个时间&#x…...

科普js加密时出现的错误

当你在使用Babel解析JavaScript代码时&#xff0c;可能会遇到一个错误信息&#xff1a;“Deleting local variable in strict mode”&#xff08;在严格模式下删除本地变量&#xff09;。这个错误信息通常表示你正在尝试删除一个使用let或const关键字声明的变量。在JavaScript的…...

MYSQL优化——B+树讲解

B-/B树看 MySQL索引结构 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树.它类似普通的平衡二叉树&#xff0c;不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中&#xff1b; 任何一…...

Rokid Jungle--Station pro

介绍和功能开发 YodaOS-Master操作系统&#xff1a;以交换计算为核心&#xff0c;实现单目SLAM空间交互&#xff0c;具有高精度、实时性和稳定性。发布UXR2.0SDK&#xff0c;为构建空间内容提供丰富的开发套件 多模态交互 算法原子化 多种开发工具协同 多生态支持 骁龙XR2…...

如何实现微服务

一、问题拆解 1.1、客户端如何访问这些服务 原来的Monolithic方式开发&#xff0c;所有的服务都是本地的&#xff0c;UI可以直接调用&#xff1b;现在按功能拆分成独立的服务&#xff0c;跑在独立的虚拟机上的Java进程了。客户端UI如何访问他的&#xff1f; 后台有N个服务&a…...

微信怎么做一些微网站/没经验怎么开广告公司

因为项目的需求&#xff0c;需要对应国际化语言&#xff0c;所以使用native2ascii命令来转换。 环境&#xff1a;Mac OSJDK版本&#xff1a;1.8工具&#xff1a;iTerm native2ascii简介 用来将别的文本类文件&#xff08;比如*.txt,.ini,.properties,*.java等等&#xff09;…...

多产品网站怎么做企业网站/河南企业网站建设

通过王涛完成的项目练习&#xff0c;发现了struts中的表单校验失败后重显的一个问题&#xff1a;假设ActionForm Bean中有一个整数类型的属性&#xff0c;如果将其类型定义为int&#xff0c;这个属性的默认值是0&#xff1b;在表单页面中用一个文本框来输入这个属性的值&#x…...

巴音郭楞网站建设/怎么建个人网站

在分类中&#xff0c;和自己的父类关联public class AssessQualityIndex extends IdEntity<AssessQualityIndex> {private static final long serialVersionUID 1L; private String scoreStandard; // 评分标准private AssessQualityIndex parent; // 父级Js…...

天津 论坛网站制作公司/线上推广100种方式

注&#xff1a;本文图片来源&#xff08;http://hosted.zeh.com.br/tweener/docs/en-us/misc/transitions.html。 侵权请告知&#xff0c;即刻删除&#xff09; 什么是缓动&#xff0c; 缓动(easing) 是指动画效果在运行时被指定速度&#xff0c;使视感更加真实。 比較经典的&a…...

qq空间怎么做网站/网站建设公司seo关键词

1.定时器 2.websocket,可以被动的接受后台数据&#xff0c;用回调函数响应&#xff08;http://www.runoob.com/html/html5-websocket.html&#xff09;...

表白视频制作网站/长沙百度快速排名优化

简介 这节课NeHe课程主要向我们展示了将物理运动规律引入到三维场景中&#xff0c;模拟真实物体的位置变化过程。这节课分别模拟了如下几种运动方式&#xff1a; &#xff08;1&#xff09;在重力作用下的抛物线运动&#xff1b; &#xff08;2&#xff09;匀速运动 &#xff…...