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.rhkb.cn/news/352307.html

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

相关文章

4.类,方法,对象

1.1.2. 面向对象程序设计的三大特征 1.1.2.1. 封装 面向对象编程核心思想之一就是将数据和对数据的操作封装在一起,形成一般的概念,比如类的概念。 1.1.2.2. 继承 继承体现了一种先进的编程模式。子类可以继承父类的属性和方法。 1.1.2.3. 多态 多…

安装 Nuxt.js 的步骤和注意事项

title: 安装 Nuxt.js 的步骤和注意事项 date: 2024/6/17 updated: 2024/6/17 author: cmdragon excerpt: Nuxt.js在Vue.js基础上提供的服务器端渲染框架优势,包括提高开发效率、代码维护性和应用性能。指南详细说明了从环境准备、Nuxt.js安装配置到进阶部署技巧&…

【S32K 进阶之旅】 将 EB 配置生成的 MCAL 代码集成到 S32DS 中

本文介绍如何使用 S32DS 进行 AUTOSAR MCAL 工程的编译和调试,重点在于将 EB 配置生成的 MCAL 代码集成到 S32DS 中。 虽然配置过程较为繁琐,实操过一遍就会熟悉整个工程的框架。以后每次在 EB 中更新配置,生成代码的文件夹已经集成在 S32DS…

ROS系统中解析通过CAN协议传输的超声波传感器数据

CAN Bus接口设置:确保你的ROS系统可以通过CAN Bus接口与外部设备通信。这可能需要CAN卡或CAN适配器,以及相应的驱动程序和库。 CAN消息接收:配置ROS节点来监听特定的CAN ID,这通常是超声波传感器的标识符。 数据解析&#xff1a…

jvm必知必会-类的生命周期图文详解

类的生命周期描述了一个从加载、使用到卸载的过程; 而其中的 连接 部分又分为一下三个阶段: 验证准备解析6.1 加载阶段 Loading阶段第一步是 类加载器 会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java代码扩展不同的渠道。 比如通过 …

003 gitee怎样将默认的私有仓库变成公开仓库

先点击“管理”, 再点击“基本信息” 在“是否开源”里, 选择:开源

重学java 71.网络编程

人生不是坐等暴风雨过去,而是学会在雨中起舞 —— 24.6.14 一、网络编程的基础概念 1.概述: 在网络通信协议下,不同计算机上运行的程序,进行数据传输 比如:通信、视频通话、网络、邮件 只要是计算机之间通过网络进行数据传输,就有…

OpenGL3.3_C++_Windows(11)

git submodule项目子模块 Git Submodule (子模块的代码并不直接存储在父仓库中,而是通过一个指针来维护)克隆含有子模块的仓库时,使用git管理Git Clone (复制一份完整的Git仓库到本地)若仓库包含子模块&am…

vivado PIN

描述 引脚是基元或层次单元上的逻辑连接点。引脚允许 要抽象掉单元格的内容,并简化逻辑以便于使用。引脚可以 是标量的,包含单个连接,或者可以定义为对多个进行分组的总线引脚 信号在一起。 相关对象 引脚连接到一个单元,并且可以…

韩兴国/姜勇团队在《Trends in Plant Science》发表植物根系氮素再分配的观点文章!

氮素是陆地生态系统中的关键限制性营养元素,通过生物固氮和土壤氮供应通常远低高等植物的氮需求。当土壤氮素供应无法充分满足植物茎叶生长需求时,植物会通过自身营养器官(如根或根茎)再分配来实现氮的内部循环和再利用。尽管植物…

Docker部署Nginx下载站点服务

1、下载镜像 由于docker官方镜像站点被封了,所以我把镜像上传到阿里云镜像仓库了 docker pull registry.cn-hangzhou.aliyuncs.com/qinzt-tools/file-nginx:1.18.02、运行容器实例 运行变量解释: 变量名称默认值解释USERhyadmin访问下载站点的认证用…

第2章 Rust初体验4/8:提供标准库之外功能的Library Crate:简化包管理和依赖管理:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.4 故事2: 生成点数之和的随机答案 又是新的一天,大家的培训课又开始了哦!现在,我们的学员们开始用三种语言来实现故事2,加油! 2.4.1 Rust版故事2 2.4.1.1 提供标准库之外功能的Library Crate:简化包管理和依赖管理 贾克强:“我们的故事…

中电金信:银行业数据中心何去何从

20多年前,计算机走进国内大众视野,计算机行业迎来在国内的高速发展时代。银行业是最早使用计算机的行业之一,也是计算机技术应用最广泛、最深入的行业之一。近年来,随着银行竞争加剧,科技如何引领业务、金融科技如何发…

26 岁的“天才少年”,带队面壁打通高效大模型之路

每一轮技术浪潮出现时,冲在最前面的都是朝气蓬勃的年轻人。 当大模型代表的人工智能浪潮席卷全球,作为移动互联网“原住民”的年轻开发者,可以说是最活跃的群体。他们的脸庞还有些稚嫩,但在技术和方向上有着自己的想法&#xff0…

一些激活函数

一些激活函数 摘要激活函数分类sigmoidTanhSoftsignSoftmaxReLUSoftplusNoisy ReLULeaky ReLUPReluELUSELUSwishGELUGLUGEGLUMishMaxout 摘要 本篇博客对一些激活函数进行总结,以便加深理解和记忆 激活函数分类 饱和激活函数:sigmoid、tanh… 非饱和激…

Anritsu 安立 MS2720T 手持式频谱分析仪

Anritsu 安立 MS2720T 手持式频谱分析仪 频谱分析仪功能特点 频率范围: 9 kHz ~ 9 GHz、13 GHz 和 20 GHz测量: 占用的带宽、信道功率、ACPR、C/I、发射波罩、杂散发射、场强适用于 LTE(FDD & TDD)、CDMA、W-CDMA、WiMAX、GSM 和 TD-SCDMA 的 3G 和…

代码随想录算法训练营第二十六天|39. 组合总和、 40.组合总和II、 131.分割回文串

39. 组合总和 题目链接:39. 组合总和 文档讲解:代码随想录 状态:卡了一会儿 思路:先排序,方便剪枝。允许数字重复使用,因此递归调用时传入当前索引i。 题解: public class Solution {// 用于存…

深度学习训练——batch_size参数设置过大反而训练更耗时的原因分析

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

长短期记忆神经网络(LSTM)的回归预测(免费完整源代码)【MATLAB】

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊类型的递归神经网络(RNN),专门用于处理和预测基于时间序列的数据。与传统RNN相比,LSTM在处理长期依赖问题时具有显著优势。 LSTM的基本…

FFmpeg中内存分配和释放相关的源码:av_malloc函数、av_mallocz函数、av_free函数和av_freep函数分析

一、av_malloc函数分析 (一)av_malloc函数的声明 av_malloc函数的声明放在在FFmpeg源码(本文演示用的FFmpeg源码版本为5.0.3,该ffmpeg在CentOS 7.5上通过10.2.1版本的gcc编译)的头文件libavutil/mem.h中:…