python文件操作、文件操作、读写文件、写模式

with读取文件数据内容

with open(filepath,mode,encoding) as file:#具体操作,例如:print(file.read())#查看文件所有的内容。    
with:Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境,比如文件操作、数据库连接等。
open:open()内置函数用于打开文件,并返回一个文件对象。它接受两个参数:文件名和打开模式。
filepath:这是你要打开的文件的路径。
mode:打开模式(mode),用于指定文件的操作模式。

encoding:

这是用于读取或写入文件的字符编码。常见的编码有:

'utf-8':UTF-8编码,广泛使用的跨平台编码。

'ascii':ASCII编码,仅支持英文字符的编码方式。

'latin-1':Latin-1编码,支持ISO-8859-1字符集的编码方式。

'gbk':GBK编码,用于中文字符的编码方式。

'utf-16':UTF-16编码,用于较大字符集的编码方式。

如果不指定encoding参数,默认使用系统的默认编码方式。一般情况下,推荐使用UTF-8编码,因为它具有较广的支持和兼容性。

as:

as关键字用于给导入的模块起一个别名。

as关键字的作用是提供更简洁、易读的方式来使用变量或模块,并且可以避免命名冲突。

mode操作模式

语        法  说明        
r:(只读模式)只读模式。默认模式。适用于读取文件。
rb:(只读模式)读取二进制数据,例如图像、音频等文件。其中r表示只读操作,b表示以二进制格式打开文件。
w:(写入模式)写入模式。覆盖写入文本内容。如果文件不存在,则会创建一个新文件。
wb:(写入模式)覆盖写入二进制数据内容。如果文件不存在,则会创建一个新文件。
a:(写入模式)追加模式。在文件末尾追加内容。如果文件不存在,则会创建一个新文件。
x:独占创建模式。如果文件已存在,则会引发FileExistsError异常。
b:二进制模式。用于读取或写入二进制文件。
t:文本模式。默认模式,用于读取或写入文本文件。

+:

更新模式。打开文件用于读写。可以与其他模式组合使用,如'r+''w+''a+'

读语法

语法说明
read()

一次性读取整个文件的内容.

readline()

每次读取一行, 包括行尾的换行符 \ n, 当读取到文件结尾时将返回一个空字符串.

readlines()

一次性读取文件的所有行,并将每行内容作为一个字符串元素存放在列表.

写语法

语法说明
write(date)写入的数据内容,data必须是字符串string
读案例 
with open("csdn.py","r") as file:print(file.read())
#读取csdn.py文件中全部的内容。
追加写入案例
with open("jingyu","a") as file:file.write("Welcome to csdn jingyu飞鸟 Blog\n")
#向jingyu文件中追加写入内容。

\n是换行,如果没有\n的话情况就是这样的。 

 

覆盖写入案例
with open("jingyu","w") as file:file.write("Wait for you, hold my hand lightly.\n")
复制文本文件内容
with open("/jingyu/one.txt","r") as o,open("/jingyu/two.txt","r") as t:o.write(t.read())
复制二进制文件
with open("/jingyu/jingyu.png","rb") as o, open("/jingyu/jingyutwo.png","wb") as t:o.write(w.read())

文件及文件夹操作

序号

命令

说明

1

os.getcwd()

获取当前目录地址

2

os.chdir(path)

切换目录

3

os.path.exists(filename/path)

判断文件或文件夹是否存在

4

os.path.basename(path)

获取文件名

5

os.path.dirname(path)

获取路径

6

os.path.split(path)

获取路径的目录和文件名

7

os.path.splitext(path)

分离扩展名

8

os.path.getsize(path)

获取文件大小

9

os.stat(path)

获取文件属性

10

os.mknod(filename)

创建文件

11

os.mkdir(path)

创建文件夹

12

os.makedirs(path)

创建多级文件夹

13

shutil.copyfile(filepath,filepath)

复制文件

14

shutil.copytree(path,path)

复制文件夹

15

shutil.move(filepath,path)

移动文件

16

os.listdir()

查看目录列表

17

os.remove(filepath)

删除文件

18

os.rmdir(path)

删除空文件夹(空)

19

os.removedirs(path)

删除多级文件夹(空)

20

shutil.rmtree(path)

删除单/多级文件夹(非空)

21

os.path.isfile(filepath)

是否为文件

22

os.path.isdir(path)

是否为目录

案例:

 

import os# 获取当前目录地址
print(os.getcwd())# 切换目录
os.chdir("/root/temp")
print(os.getcwd())# 创建文件
if not os.path.exists("/root/temp/demo01.txt"):os.mknod("demo01.txt")# 获取文件名
print(os.path.basename("/root/temp/demo01.txt"))# 获取路径
print(os.path.dirname("/root/temp/demo01.txt"))# 获取路径的目录名和文件名
print(os.path.split("/root/temp/demo01.txt"))# 分离扩展名
print(os.path.splitext("/root/temp/demo01.txt"))# 获取文件的大小
print(os.path.getsize("/root/temp/demo01.txt"))# 获取文件的属性
_file_detail = os.stat("/root/temp/demo01.txt")
print(os.stat("/root/temp/demo01.txt"))# 获取文件大小
print(_file_detail.st_size)# 获取文件创建时间
print(_file_detail.st_ctime)# 获取文件修改时间
print(_file_detail.st_mtime)# 获取文件访问时间
print(_file_detail.st_atime)# 创建文件夹
if not os.path.exists("/root/temp"):os.mkdir("/root/temp")# 创建多级文件夹
if not os.path.exists("/root/my/demo"):os.makedirs("/root/my/demo")# 查看目录"列表
os.chdir("/root")
print(os.listdir())# 创建文件
if not os.path.exists("/root/my/demo/test01.txt"):os.chdir("/root/my/demo")os.mknod("test01.txt")# 写入数据
_file = open("/root/my/demo/test01.txt", "w",encoding="UTF-8")
_file.write("i like python....")
_file.close()# 删除一个指定的空文件夹
os.rmdir("/root/my")
os.rmdir("/root/rm")# 删除一个指定的多级目录
os.removedirs("/root/my")  # OSError: [Errno 39]
os.removedirs("/root/1/2")
# 删除目录(非空也可)import shutilshutil.rmtree("/root/my")
print(os.path.isfile("/root/data/123.png"))
print(os.path.isdir("/root/data"))
print(os.path.isfile("/root/data"))
print(os.path.isdir("/root/data/a.txt"))# 复制文件
shutil.copyfile("/root/data/hello.txt","/root/data/hellobf1.txt")# 复制文件夹
shutil.copytree("/root/data", "/root/mytest")# 移动文件
shutil.move("/root/data/123.png","/root/files/temp")# 删除文件
os.remove("/root/files/temp/123.png")

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

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

相关文章

MySQL 保姆级教程(七):用正则表达式进行搜索

第 9 章 用正则表达式进行搜索 9.1 正则表达式介绍 正则表达式是用来匹配文本的特殊的串(字符集合) 9.2 使用 MySQL 正则表达式 MySQL 用WHERE 子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤 SELECT 检索出的数…

高级前端开发需要知道的 25 个 JavaScript 单行代码

1. 不使用临时变量来交换变量的值 例如我们想要将 a 于 b 的值交换 let a 1, b 2;// 交换值 [a, b] [b, a];// 结果: a 2, b 1 这行代码使用数组解构赋值的方式来交换两个变量的值,无需定义新的临时变量。这个巧妙的技巧可让代码看起来更简洁明了。语法[a, b]…

使用 Azure AI Document Intelligence 创建智能文档处理

简介 借助 Azure AI 文档智能中的预生成模型,无需自行训练模型,即可从常见表单和文档中提取数据。 公司中,表单种类繁多,如发票、收据、调查表等。你可能想知道,从这些文档中提取姓名、地址、金额等信息需要多少工作…

linux下C语言如何操作文件(五)

对(四)增加的函数编写测试代码。 static void file_oper_demo_01(const char* path){log_yellow("command: %s\n", path);String* str = build_string(path);char pspace[2] = { , \0};struct string_segment *cmds = str->split_by(str, pspace);if(cmds == NUL…

APaaS:智能制造助手

资金不足、IT基础架构薄弱...... 车间业务需求不断地在增加...... 都在说数字化,都在说转型...... 随着企业竞争的日益激烈和市场环境的快速变化,企业需要一个灵活、高效、快速响应市场变化的新平台。在这样的背景下,APaaS应运而生&#x…

RocketMQ快速入门:集成java客户端实现各类消息发送|异步、同步、顺序、单向、延迟、事务(五)附带源码

0. 引言 前面的章节中,我们已经针对rocketmq的基本概念和消息发送、消费流程进行了讲解,但实际在开发中如何实现rocketmq的接入、实现消息发送、消费还没有落实,那么今天,我们继续来学习如何基于java client集成rocketMQ 1. 集成…

火车头采集中英文翻译教程

火车头采集怎么实现数据中文翻译成英文,或英文翻译成中文? 火车头采集没有自带的翻译功能,但可以使用插件功能来实现:导入翻译插件(例如谷歌翻译插件,百度翻译插件等),然后在火车头…

视频媒介VS文字媒介

看到一篇蛮有思考意义的文章就摘录下来了,也引起了反思 目录 一、视频的定义 二、”视频媒介“与”文字媒介”作对比 1.形象 VS 抽象 2.被动 VS 主动 三、视频的缺点-【更少】的思考 1.看视频为啥会导致【更少的思考】 2.内容的【浅薄化】 3.内容的【娱乐化…

西安市工业倍增引导基金子基金申报条件流程和材料程序指南(2024年)

一、基本情况 产业投资基金是以产业发展为首要目标,围绕经济社会发展规划和产业发展政策,发挥“有效市场”作用,支持重点领域、重点产业、重点区域(如:全市六大支柱产业、五大新兴产业领域成熟期重点规模以上企业以及“…

分布式+可移植,上云后降本增效的关键

试想一下:如果没有云计算,商业将会是什么样子? 云计算和多云战略的出现为全球企业带来了革命性的变化。然而,虽然技术已经发展了这么多年,但“多云”所固有的复杂性仍然是企业面临的主要痛点。选择多云战略的企业&…

【尚庭公寓SpringBoot + Vue 项目实战】用户管理(十五)

【尚庭公寓SpringBoot Vue 项目实战】用户管理(十五) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】用户管理(十五)1、业务介绍2、接口实现2.1、根据条件分页查询用户列表2.2、根据ID更新用户状态 1、业务介绍 用户管理共包含两…

辐射传输方程和图形学渲染方程的区别

文章目录 概述辐射传输方程图形学渲染方程主要区别小结 概述 因为最近在看NeRFs相关的论文,所以接触到一些图形学内容, 在一篇介绍Radiance Filed 文章中,看到了关于图形渲染方程的内容,但搜索下来,文中给出的方程形式和其他地方的似乎不一致…

关于生成式人工智能的发展

近年来,人工智能的发展引起了广泛关注,尤其是在深度学习领域,以深度神经网络为代表的人工智能技术已经取得了重大突破。然而,深度神经网络也有其局限性。深度学习技术在处理一些复杂问题时表现良好,但在解决更广泛的任…

PS系统教学20

油漆桶工具 作用:上色工具的一种 上一些纯色、图案 纯色 新建图层填充区域的源设置为前景色设置前景色为想要的颜色左键单机填充(altdelete)如果要添加背景色(Ctrldelete)也可以与选区工具结合使用 可以与快速选择…

大模型日报2024-06-17

大模型日报 2024-06-17 大模型资讯 大模型产品 大模型论文 VideoGPT: 图像与视频编码器结合的视频理解 摘要: VideoGPT结合图像和视频编码器的优势,提升视频理解性能。通过自适应池化策略处理视频,改进多项视频基准测试表现,并引入VCGBench-D…

【React】如何使用npm run start命令运行两个服务

我们开发前端项目时,有时候需要本地 mock 数据,这样就需要启动两个服务,一个是接口服务,一个是前端项目。可以安装一个插件来帮助我们通过一个命令启动两个服务。 方法一 添加& npm run server 注意:Windows系统…

牛客热题:最长回文子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一&am…

鸿蒙开发:【启动本地PageAbility】

启动本地PageAbility PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。 表1 featureAbility接口说明 接口名接口描述startAbility(parameter: StartAbilityParameter)启动Ability。startAbilityForRes…

Linux之网络编程

Linux之网络编程 TCP协议 TCP(Transmission ControlProtocol) : 传输控制协议,是一个 面向连接的、可靠的、基于字节流的传输层的协议。TCP 协议建立的是一种点到点的,一对一的可靠连接协议 特点: 数据无丢失数据无失序数据无错误数据无重…

振动分析-3-基于Python的FFT幅值修正与能量修正

幅值修正与能量修正过程(更正) 参考什么是泄漏? 参考什么是窗函数? 参考使用python实现快速傅里叶变换(FFT) 参考频谱泄露和窗函数以及加窗后幅度修正和python代码实现 1 快速傅里叶变换(FFT) 离散傅里叶变换(discr…