Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件

目录

  • Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件
    • 一、删除文件:使用`os.remove()`函数
    • 二、重命名文件与目录:使用`os.rename()`函数
    • 三、获取文件的基本信息:使用`os.stat()`函数

内置的os模块除了可以对目录进行操作,还可以对文件进行操作。比如:查看与修改文件权限,重命名文件与目录,删除文件与目录等。

os模块提供的与文件有关的函数如下表所示:

函数说明
access(path,accessmode)判断对文件是否有指定的访问权限(读取、写入、执行权限)。accessmode的值是R_OK(读取)、W_OK(写入)、X_OK(执行)、F_OK(存在)。如果有指定的权限,则返回1,否则返回0
chmod(path,mode)修改path指定文件的访问权限。
remove(path)删除path指定的文件路径。
rename(src,dst)将文件或目录src重命名为dst
stat(path)返回path指定文件的信息。
startfile(path[,operation])使用关联的应用程序打开path指定的文件。

一、删除文件:使用os.remove()函数

remove()函数的语法格式如下:

os.remove(path)
说明:
path为要删除的文件路径,可以是绝对路径,也可以是相对路径。

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.remove("hello.txt")  #删除文件
os.remove("hello - 副本.txt")  #删除文件
print(os.listdir(r"d:\python示例"))程序的运行结果为:
['college.csv', 'dir123', 'dir20250809', 'hello - 副本.txt', 'hello.txt', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
['college.csv', 'dir123', 'dir20250809', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']

如果要删除的文件不存在,则会抛出异常。

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.remove('abc.txt')程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 4, in <module>os.remove('abc.txt')~~~~~~~~~^^^^^^^^^^^
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'abc.txt'

因此,在删除文件之前应该先判断文件是否存在,如果存在才删除。

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
if os.path.exists('abc.txt'):os.remove('abc.txt')
else:print("要删除的文件不存在")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
要删除的文件不存在

二、重命名文件与目录:使用os.rename()函数

使用rename()函数是,如果指定的参数src是文件,则重命名文件,如果是目录,则重命名目录。

rename()函数的语法格式如下:

os.rename(src,dst)

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.rename('college.csv','c113.csv') #重命名文件
os.rename('dir123','mydir123')  #重命名目录
print(os.listdir(r"d:\python示例"))程序的运行结果为:
['college.csv', 'dir123', 'dir20250809', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']

在重命名文件或目录时,如果需要重命名的文件或目录不存在,则会抛出异常。

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.rename("abc.txt","wgx/txt")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 4, in <module>os.rename("abc.txt","wgx/txt")~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'abc.txt' -> 'wgx/txt'

因此,在重命名文件或目录之前应该先判断文件或目录是否存在,如果存在才重命名。

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
if os.path.exists("abc.txt"):os.rename("abc.txt","wgx/txt")
else:print("文件不存在")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
文件不存在

三、获取文件的基本信息:使用os.stat()函数

计算机上的文件本身会包含一些信息,如文件的最后一次访问时间、最后一次修改时间、文件大小等。使用os.stat()函数可以获取文件的这些信息。

os.stat()函数的语法格式如下:

os.stat(path)

stat()函数返回的是一个对象,该对象包含如下表所示的属性。通过访问这些属性可以获取文件的基本信息。

stat()函数返回的对象的常用属性:

属性说明
st_mode保护模式
st_ino索引号
st_nlink硬链接号
st_size文件大小(单位为字节)
st_mtime最后一次修改时间
st_dev设备名
st_uid用户ID
st_gidID
st_atime最后一次访问时间
st_ctime最后一次状态变化的时间

例如:

import os
os.chdir(r"d:\python示例")
print(os.listdir())
obj1=os.stat('stu.csv')
print("文件大小为:",obj1.st_size)
print("最后一次修改时间:",obj1.st_mtime)
print("最后一次访问时间:",obj1.st_atime)程序的运行结果为:
文件大小为: 136
最后一次修改时间: 1754701220.220549
最后一次访问时间: 1754701220.220549

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

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

相关文章

uni-app 网络请求终极选型:uni.request、axios、uni-network、alova 谁才是你的真命请求库?

还在 uni-app 里手写 uni.request 然后自己封装到怀疑人生&#xff1f; 想用 axios 却担心小程序 2 MB 主包瞬间爆炸&#xff1f; 面对 alova、uni-network、axios 一脸懵&#xff0c;不知道选哪个才不踩坑&#xff1f; 这篇一次讲透 4 大主流方案优缺点、适用场景和避坑指南&a…

2G内存的服务器用宝塔安装php的fileinfo拓展时总是卡死无法安装成功的解决办法

临时加大 Swap&#xff08;4G&#xff09; fallocate -l 4G /swapfile2 chmod 600 /swapfile2 mkswap /swapfile2 swapon /swapfile2 free -h确认现在有了足够的 swap&#xff08;总内存 swap 应该达到 6G&#xff09;&#xff1a; free -h编译 fileinfo 扩展&#xff08;只用…

DAY 41 简单CNN

知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 → Batch归一化层…

Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理

摘要&#xff1a;本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。Tips&#xff1a;点击「阅读原文」跳转阿里云实时…

运维巡检单(文档)

1 运维巡检表格 1.1 每日巡检记录单 1.2 周巡检报告 1.3 季度巡检报告 1.4 远程服务记录单 1.5 现场维护记录单 1.6 现场运维巡检服务单 1.7 服务器巡检记录 1.8 网络设备巡检记录 1.9 视频会议系统检测表 1.10 机房巡检报告 1.11 运维服务统计表 1.12 运维服务交接…

BLDC直流无刷电机工作原理

1.介绍什么是BLDC&#xff1f;BLDC&#xff08;Brushless Direct Current Motor&#xff0c;无刷直流电机&#xff09;是一种采用电子换向替代传统机械电刷和换向器的直流电机&#xff0c;兼具直流电机的调速性能和交流电机的结构优势在这之前我们先了解一般电机的分类以及直流…

Rust 实战四 | Traui2+Vue3+Rspack 开发桌面应用:通配符掩码计算器

往期回顾 Rust 实战三 | HTTP 服务开发及 Web 框架推荐Rust 实战二 | 开发简易版命令行工具 grepRust 实战一 | 用 RustRover 开发猜数字游戏Rust 安装与版本更新 代码开源地址&#xff1a;https://github.com/0604hx/rust-journey、通配符掩码计算器 学习一门编程语言&#…

大型语言与进化算法潜在研究方向与挑战

[1] WANG C, ZHAO J, JIAO L, 等. When Large Language Models Meet Evolutionary Algorithms: Potential Enhancements and Challenges[A/OL]. arXiv, 2025[2025-08-07]. http://arxiv.org/abs/2401.10510. DOI:10.48550/arXiv.2401.10510. 这篇文章《当大型语言模型遇到进化算…

计算二分类误差时的常见错误及解决方案

计算二分类误差时的常见错误及解决方案 在二分类任务中使用 error sum(y ! (y_hat > 0.5)) 计算分类错误时&#xff0c;可能遇到以下问题及解决方案&#xff1a; 1. 数据类型不匹配错误 问题&#xff1a;真实标签 y 和预测值 y_hat 的数据类型不一致&#xff08;如 y 是整数…

uniapp-vue2导航栏全局自动下拉变色

全局自动下拉变色解决方案 雀语文章地址 &#x1f4d6; 项目简介 这是一个基于 Vue.js 和 uni-app 的全局自动下拉变色解决方案&#xff0c;通过全局 mixin 实现页面滚动时导航栏的自动颜色变化效果。 ✨ 核心特性 ● &#x1f3af; 全局自动生效&#xff1a;无需在每个页面手动…

自有域名功能详解——安全可控的企业级访问方案

ZeroNews 推出自有域名穿透功能&#xff0c;支持用户将已备案域名与内网服务绑定&#xff0c;实现专业级访问控制。本文将系统解析其核心能力与操作逻辑。功能价值1. 所有权掌控使用企业自有域名而非第三方子域名&#xff0c;强化品牌一致性及管理权限。2. 安全合规强制 TLS 加…

Python驱动的无人机多光谱-点云融合技术在生态三维建模与碳储量/生物量/LULC估算中的全流程实战

随着生态学、林学、地理信息科学等多个学科对“结构—功能”一体化研究的共同推进&#xff0c;无人机多光谱与结构光摄影测量&#xff08;SfM&#xff09;技术已经从早期实验室验证阶段&#xff0c;走向区域尺度精细生态监测与资源清查的主流工具。过去十年&#xff0c;厘米级空…

JDY-31蓝牙SPP串口透传模块

一、产品简介与应用 JDY-31蓝牙基于蓝牙3.0 SPP设计&#xff0c;这样可以支持Windows、Linux、android数据透传&#xff0c; 工作频段2.4GHZ&#xff0c;调制方式GFSK&#xff0c;最大发射功率8db&#xff0c;最大发射距离30米&#xff0c;支持用户通过 AT命令修改设备名、波特…

模块--继电器

继电器模块详解 继电器,是一种常见的电控置装置,其应用几乎无处不在。在家庭生活中,继电器被广泛应用于照明系统,电视机,空调等电器设备的控制,在工业领域,它们用于控制电机,泵站,生产等高功率设备的运行;继电器还在通信网络,交通系统以及医疗设备中发挥着重要作用。…

Error: error:0308010C:digital envelope routines::unsupported at new Hash

1.报错 这个错误通常与 Node.js 的版本有关。从报错信息中可以看到&#xff0c;使用的 Node 版本是 v22.2.0。 该错误是因为 Node.js v17 及以上版本使用了 OpenSSL 3.0&#xff0c;而一些旧的加密算法或方式在 OpenSSL 3.0 中不再支持。 在项目中&#xff0c;通常是因为 webpa…

OpenAI开发者平台快速入门与API实践指南

OpenAI开发者平台快速入门与API实践指南 一、平台简介 OpenAI开发者平台为开发者提供了强大的人工智能API接口&#xff0c;能够在短时间内实现文本生成、图像识别、音频处理等多种AI能力。本文将详细介绍如何快速上手&#xff0c;发起API请求&#xff0c;并讨论模型选型、功能…

从 GPT‑2 到 gpt‑oss:解析架构的迭代

From GPT-2 to gpt-oss: Analyzing the Architectural Advances 原文 https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the OpenAI 本周刚发布了两款新的开放权重的大语言模型&#xff1a;gpt-oss-120b 和 gpt-oss-20b&#xff0c;这是自 2019 年 GP…

一周学会Matplotlib3 Python 数据可视化-线条 (Line)

锋哥原创的Matplotlib3 Python数据可视化视频教程&#xff1a; https://www.bilibili.com/video/BV1UhtuzcEqX/ 课程介绍 本课程讲解利用python进行数据可视化 科研绘图-Matplotlib&#xff0c;学习Matplotlib图形参数基本设置&#xff0c;绘图参数及主要函数&#xff0c;以及…

09-netty基础-手写rpc-原理-01

netty系列文章&#xff1a; 01-netty基础-socket02-netty基础-java四种IO模型03-netty基础-多路复用select、poll、epoll04-netty基础-Reactor三种模型05-netty基础-ByteBuf数据结构06-netty基础-编码解码07-netty基础-自定义编解码器08-netty基础-自定义序列化和反序列化09-n…

Windows 小知识:Winodws 文件与文件夹名不区分大小写

专栏导航 上一篇&#xff1a;Windows 编程辅助技能&#xff1a;速览定义 回到目录 下一篇&#xff1a;无 本节前言 本节来分享一个小的知识点&#xff0c;具体地&#xff0c;我们在下面来细说。 一. Windows 系统的文件与文件夹的名字&#xff0c;不区分大小写 请大家…