【13.3 python中的高级文件操作】

python中的高级文件操作


在Python中,除了基本的文件读写和目录操作外,还有一些高级的文件和目录操作,如删除文件、重命名文件和目录、以及获取文件的基本信息等。这些操作通常通过os模块和pathlib模块来实现。下面我将详细介绍这些操作,并给出相应的示例。

删除文件

  • 使用os模块os.remove(path)函数用于删除文件。如果文件不存在,将引发FileNotFoundError异常。
  • 使用pathlib模块Path.unlink()方法也可以用来删除文件,其工作方式类似于os.remove()

示例

import os
from pathlib import Path# 使用os模块删除文件
file_path = 'example.txt'
if os.path.exists(file_path):os.remove(file_path)print(f"{file_path} 已删除")
else:print(f"{file_path} 不存在")# 使用pathlib模块删除文件
file_path_pathlib = Path('example.txt')
if file_path_pathlib.exists():file_path_pathlib.unlink()print(f"{file_path_pathlib} 已删除")
else:print(f"{file_path_pathlib} 不存在")

重命名文件和目录

  • 使用os模块os.rename(src, dst)函数用于重命名文件或目录。如果目标路径已存在,它将被覆盖。
  • 使用pathlib模块Path.rename(target)方法也可以用来重命名文件或目录,其中target是新的路径。

示例

import os
from pathlib import Path# 使用os模块重命名文件
old_file_path = 'old_example.txt'
new_file_path = 'new_example.txt'
if os.path.exists(old_file_path):os.rename(old_file_path, new_file_path)print(f"{old_file_path} 已重命名为 {new_file_path}")
else:print(f"{old_file_path} 不存在")# 使用pathlib模块重命名文件
old_file_path_pathlib = Path('old_example.txt')
new_file_path_pathlib = Path('another_example.txt')
if old_file_path_pathlib.exists():old_file_path_pathlib.rename(new_file_path_pathlib)print(f"{old_file_path_pathlib} 已重命名为 {new_file_path_pathlib}")
else:print(f"{old_file_path_pathlib} 不存在")# 重命名目录(与重命名文件相同)
old_dir_path = 'old_dir'
new_dir_path = 'new_dir'
if os.path.exists(old_dir_path):os.rename(old_dir_path, new_dir_path)print(f"{old_dir_path} 已重命名为 {new_dir_path}")
else:print(f"{old_dir_path} 不存在")

获取文件的基本信息

获取文件的基本信息通常涉及文件的元数据,如大小、修改时间等。这些可以通过os.path模块和os.stat()函数或pathlib.Path对象的stat()方法来实现。

示例

import os
from pathlib import Path
from datetime import datetime# 使用os模块获取文件信息
file_path = 'example.txt'
if os.path.exists(file_path):file_stat = os.stat(file_path)print(f"文件大小: {file_stat.st_size} 字节")print(f"最后修改时间: {datetime.fromtimestamp(file_stat.st_mtime)}")
else:print(f"{file_path} 不存在")# 使用pathlib模块获取文件信息
file_path_pathlib = Path('example.txt')
if file_path_pathlib.exists():file_stat = file_path_pathlib.stat()print(f"文件大小: {file_stat.st_size} 字节")print(f"最后修改时间: {datetime.fromtimestamp

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

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

相关文章

Git在IDEA中的集成操作(附步骤图)

1.先做适配操作,将安装的Git软件关联到IDEA中 点击Test之后若成功会显示出Git版本: 2.创建版本仓库 3.创建新的版本 3.1将文件提交到暂存区(不重要) 第一种方式:菜单栏提交 第二种方式:项目右键提交 4.查看历史版本信息 目…

整合sentinel遇到的小问题

1.运行jar包 ,端口为默认8080 正确命令 java -Dserver.port8090 -Dcsp.sentinel.dashboard.server127.0.0.1:8090 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar -D这些指令要在 -jar前面 在宝塔部署时,直接复制到运行命令后…

acl2的安装和vescmul的运行

使用sat一类的求解器验证乘法器,通常无法收敛,Mertcan Temel博士基于acl2实现了数字电路中乘法器的验证。下面简单介绍一下acl2的安装、vescmul的运行。 1.下载acl2 git clone https://github.com/acl2/acl2.git 2.acl2基于lisp编程语言实现&#xff…

Sparse Kernel Canonical Correlation Analysis

论文链接:https://arxiv.org/pdf/1701.04207 看这篇论文终于看懂核函数了。。谢谢作者

基于无人机边沿相关 ------- IBUS、SBUS协议和PPM信号

文章目录 一、IBUS协议二、SBUS协议三、PPM信号 一、IBUS协议 IBUS(Intelligent Bus)是一种用于电子设备之间通信的协议,采用串行通信方式,允许多设备通过单一数据线通信,较低延迟,支持多主机和从机结构&a…

SpringBoot集成kafka-监听器注解

SpringBoot集成kafka-监听器注解 1、application.yml2、生产者3、消费者4、测试类5、测试 1、application.yml #自定义配置 kafka:topic:name: helloTopicconsumer:group: helloGroup2、生产者 package com.power.producer;import com.power.model.User; import com.power.uti…

C++11详解 (右值引用、可变参数模板、emplace_back、lambda表达式、function、bind)

目录 简介 左值引用与右值引用 左值引用与右值引用是什么 左值引用与右值引用的比较 右值引用的使用场景与C11中STL的新变化 完美转发 新的类功能 可变参数模板 可变参数模板的应用——emplace_back lambda表达式 包装器 function bind 结语 简介 在过往&#xf…

UGUI空白可点击组件,减少重绘

如果使用image alpha 0,会导致overDraw,直接清空mesh,不绘制即可避免 #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; using UnityEngine.UI; namespace UnityGameFramework { [AddComponentMenu("Game/UI/GameEmpty4Raycast")] [Requir…

基于vue框架的毕业设计选题系统bqx47(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:学生,指导老师,课题信息,类型,选题信息 开题报告内容 基于Vue框架的毕业设计选题系统 开题报告 一、引言 毕业设计选题是高等教育中极为关键的一环,它不仅关乎学生未来研究的方向与深度,也是培养其创新思维和实…

Node.js-身份证号实名认证-小程序实名认证接口集成方法

使用身份证实名认证API之前,首先要确保已有一个可运行的开发环境,例如小程序或应用程序开发环境。这将是集成和测试API的基础。在应用中设计一个用户输入界面,用于用户输入姓名和身份证号码,同时设计提交按钮以触发验证流程。 在选…

Java 调用三方文件上传接口

Java 调用三方文件上传接口 url 为三方接口地址files为上传的文件信息,类型为File类型 // 构造MultiResource MultiResource multiResource new MultiResource(files.stream().map(multipartFile -> {try {return new InputStreamResource(Files.newInputStr…

SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞 1.什么是SSRF SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。 简单来说,假设你的网站有一个功能…

Linux的tmux命令使用

tmux ("terminal multiplexer"的简称), 是一款优秀的终端复用软件,tmux来自于openbsd,采用bsd授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台…

rk3568 npu opencv 怎么联系起来

问题: 客户一直再问 关于 3568 npu opencv 的编译内容。 大致了解一些 ,这方面的内容。 网上的资料。 也许这个基本上就是他的逻辑了, 首先界面使用QT来写。 然后,使用 opencv 去读取摄像头。 然后拿到一帧图像之后&#xff…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…

电脑U口管理软件分享|U口管理软件哪个好?

电脑U口&#xff08;即USB端口&#xff09;管理软件是保护电脑安全、防止数据泄露和恶意软件入侵的重要工具。 在选择U口管理软件时&#xff0c;需要考虑其功能、易用性、安全性以及是否满足个人或企业的具体需求。以下是一些值得推荐的电脑U口管理软件及其特点&#xff1a; 1…

基本数据类型及命令

String String 是Redis最基本的类型&#xff0c;Redis所有的数据结构都是以唯一的key字符串作为名称&#xff0c;然后通过这个唯一的key值获取相应的value数据。不同的类型的数据结构差异就在于value的结构不同。 String类型是二进制安全的。意思是string可以包含任何数据&…

Linux:Linux线程池

目录 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 线程池演示 线程池的概念 线程池是一种线程使用模式。 线程过多会带来调度开销&#xff0c;进而影响缓存局部和整体性能&#xff0c;而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的…

每日OJ_牛客_剪花布条(string内置函数)

目录 牛客_剪花布条&#xff08;string内置函数&#xff09; 解析代码 牛客_剪花布条&#xff08;string内置函数&#xff09; 剪花布条__牛客网 解析代码 题意就是在S串中&#xff0c;T串整体出现了多少次。C语言可以通过strstr函数找&#xff0c;用STL的string库可以通过f…

mysql练习5

数据准备 创建两张表:部门(dept)和员工(emp)&#xff0c;并插入数据&#xff0c;代码如下 create table dept( dept id int primary key auto increment comment部门编号, dept_name char(20)comment部门名称 ); insert into d…