Python读写文件
最近得以空闲,然后继续学习py。
学习一下py中最频繁用到的文件读写的方法。
在py中,操作是通过文件对象【File obj】实现的,通过文件对象可以读写文本文件和一些二进制文件。
1.打开文件
使用Python中的open函数。有8个参数,但是我们常用的就2个足够了。
# 使用所有参数打开文件
with open('example.txt', mode='r', buffering=1, encoding='utf-8', errors='ignore', newline='\n', closefd=True, opener=None) as f:# 读取文件内容content = f.read()print(content)
- file参数
如果是字符串,则代表的是文件名字,文件名字可以是相对当前目录的路径,也可以是绝对路径;如果是一个整数,则代表文件描述符,文件描述符指向一个打开的文件。 - mode参数
下面是常用的文件打开模式:
-
只读模式 (
r):- 描述:以只读模式打开文件。文件指针将会放在文件的开头。如果文件不存在,会抛出
FileNotFoundError异常。 - 示例:
open('filename.txt', 'r')
- 描述:以只读模式打开文件。文件指针将会放在文件的开头。如果文件不存在,会抛出
-
写入模式 (
w):- 描述:以写入模式打开文件。文件指针会放在文件的开头。如果文件不存在,会创建一个新文件。如果文件存在,会截断文件(即清空文件内容)。
- 示例:
open('filename.txt', 'w')
-
追加模式 (
a):- 描述:以追加模式打开文件。文件指针会放在文件的末尾。如果文件不存在,会创建一个新文件。如果文件存在,写入的数据将会追加到文件的末尾。
- 示例:
open('filename.txt', 'a')
-
读写模式 (
r+):- 描述:以读写模式打开文件。文件指针会放在文件的开头。如果文件不存在,会抛出
FileNotFoundError异常。 - 示例:
open('filename.txt', 'r+')
- 描述:以读写模式打开文件。文件指针会放在文件的开头。如果文件不存在,会抛出
-
写入读模式 (
w+):- 描述:以写入读模式打开文件。文件指针会放在文件的开头。如果文件不存在,会创建一个新文件。如果文件存在,会截断文件。
- 示例:
open('filename.txt', 'w+')
-
追加读模式 (
a+):- 描述:以追加读模式打开文件。文件指针会放在文件的末尾。如果文件不存在,会创建一个新文件。如果文件存在,写入的数据将会追加到文件的末尾。可以进行读写操作。
- 示例:
open('filename.txt', 'a+')
-
二进制模式 (
b):- 描述:以二进制模式打开文件。可以与上述模式组合使用,例如
rb、wb、ab、r+b等。用于读取或写入二进制文件,如图片、音频等。 - 示例:
open('filename.bin', 'rb')
- 描述:以二进制模式打开文件。可以与上述模式组合使用,例如
-
文本模式 (
t):- 描述:以文本模式打开文件。默认模式,可以与上述模式组合使用,例如
rt、wt、at、r+t等。用于读取或写入文本文件。 - 示例:
open('filename.txt', 'rt')
- 描述:以文本模式打开文件。默认模式,可以与上述模式组合使用,例如
示例代码
以下是一些打开文件的示例代码:
# 以只读模式打开文本文件
with open('example.txt', 'r', encoding='utf-8') as f:content = f.read()# 以写入模式打开文本文件
with open('example.txt', 'w', encoding='utf-8') as f:f.write("Hello, World!")# 以追加模式打开文本文件
with open('example.txt', 'a', encoding='utf-8') as f:f.write("Appending some text.")# 以二进制模式打开文件
with open('example.bin', 'rb') as f:binary_content = f.read()# 以读写模式打开文件
with open('example.txt', 'r+', encoding='utf-8') as f:f.write("Read and write.")f.seek(0)content = f.read()
2.关闭文件
当使用了open打开文件之后,要记得写关闭文件,否则会抛异常。
常规就是调用一次open,然后尾部写一下close。
但是一般情况下,文件的操作往往会抛出异常,为了保证文件的操作无论正常结束还是异常结束都能够关闭文件,使用with as 代码块来进行自动资源管理。
import unittestclass MyTestCase(unittest.TestCase):def test_something(self):# self.assertEqual(True, False) # add assertion here# print("hello world")fobj = open("test.txt", "w+",encoding="utf-8")fobj.write("hello world")fobj.close()with open("test.txt", "a+",encoding="utf-8") as f:f.write("\n大家好~")if __name__ == '__main__':unittest.main()
这样子执行的话,就是创建了一个文件,往里面写入了一句话。
注意
- 文件有编码的,需要指定
- 用完要关闭
相关文章:
Python读写文件
最近得以空闲,然后继续学习py。 学习一下py中最频繁用到的文件读写的方法。 在py中,操作是通过文件对象【File obj】实现的,通过文件对象可以读写文本文件和一些二进制文件。 1.打开文件 使用Python中的open函数。有8个参数,但…...
docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外
文章目录 前言docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外、1. docker 如何将容器外的脚本放入容器内1.1. 验证 2. 将容器内的脚本放入容器外 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊&…...
算法训练营第三十九天 | LeetCode 738 单调递增的数字、LeetCode 968 监控二叉树
LeetCode 738 单调递增的数字 这题类似模拟,可以找出如下规律: 先将数字按位数从高位到低位存到一个整型数组中。在这个数组中,从左往右遍历,如果遇到一个两数相等,并且记录的这个变量之前没有赋过值,那么…...
Hive语法学习总结
Hive SQL语法学习总结 hive参数库操作1.创建库2.具体案例3.库的其他操作 表和库的路径演示表的操作创建表插入数据 hive参数 一 hive常用交互命令hive -e sql语句hive -f sql文件 //文件中是sql语句二 参数的设置方式一:在客户端中设置参数(当次有效)set 参数名参…...
【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}
文章目录 1.确认应答机制2.超时重传机制:超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释: 数据分段与发送: 发送方将要发送的数据分成一…...
solidworks画螺母学习笔记
螺母 单位mm 六边形 直径16mm,水平约束,内圆直径10mm 拉伸 选择两侧对称,厚度7mm 拉伸切除 画相切圆 切除深度7mm,反向切除 拔模角度45 镜像切除 倒角 直径1mm 异形孔向导 螺纹线 偏移打勾,距离为2mm…...
WebGL的医学培训软件开发
开发基于WebGL的医学培训软件是一项复杂且技术性强的任务,需要结合医学专业知识和计算机图形学技术。以下是详细的开发流程和关键步骤。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.需求分析与定义 目标用户…...
新时代AI浪潮下,程序员和产品经理如何入局AIGC领域?
当下,AI浪潮席卷全球,AIGC大模型技术已经成为当今技术领域的一个重要趋势,对于产品经理来说,掌握这项技术不仅能够增强他们的职业技能,还能在竞争激烈的职场中脱颖而出。 为什么呢? 把握AI时代的机遇 AI技…...
OWASP top10--SQL注入(一)
SQL注入式攻击技术,一般针对基于Web平台的应用程序.造成SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时,没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数,提交SQL查询语句,并传递至服务器端…...
java —— 类与方法
一、访问修饰符 在类和方法中,均可使用访问修饰符以锁定该类或方法的被访问权限。访问修饰符有四种: (一)public 同一个项目中,对所有的类可见。 (二)protected 同一个项目中,对…...
【MySQL精通之路】InnoDB-启动选项和系统变量
系统变量可以在服务器启动时设置TRUE或FALSE启用禁用,也可以通过使用--skip前缀来禁用 例如: 要启用或禁用InnoDB自适应哈希索引,可以在命令行中使用--skip-innodb-adaptive-hash-index或--innodb-adaptive-hash-index,或者在配置…...
嵌入式linux系统中文件系统制作方法详解
第一:制作目的 1、掌握嵌入式Ubuntu系统的构建方法 2、熟悉嵌入式Ubuntu文件系统映射压缩打包方法 3、掌握RK3399linux系统单文件系统更新方法 Ubuntu根文件系统制作完成之后,把制作好的ubuntu文件系统映射文件在出厂系统的基础上替换原有的ubuntu根文件系统,即对 Linux 系统…...
AI爆文写作:要写文章爆,这47个爆文前缀少不了!
47个爆文前缀:很震惊很好用 这些前缀,虽然被用了无数次,但每个人看到还是会忍不住点进去。 可以借鉴这样强情绪的句式。 序号前缀1就在刚刚…2真相曝光…3震惊国人…4惊天秘密…5疯狂转发…6删前速看…7千万别吃…8还敢喝吗…9癌症前兆…10赶快扔了…11太可怕了…12大事不…...
javas-core VS java-object-diff
对照工具选择 javas-core 和 java-object-diff ,对比demo https://github.com/kofgame/objectdiff-vs-javers,都为同源对比,都支持嵌套对象。 使用JMH测试方法进行性能测试,使用题库的QuestionResponseVO对象来进行对照对比,进行…...
dirsearch指令大全
文章目录 基本用法主要参数和选项目标和URL设置--url URL--url-list FILE 扩展名--extensions EXTENSIONS 字典文件--wordlists WORDLIST 线程和性能--threads THREADS--timeout SECONDS--delay MILLISECONDS 忽略状态码代理和请求设置--proxy PROXY--headers HEADERS 保存结果…...
C++基础:构建者设计模式
#include <iostream> #include <string> using namespace std; //构建者设计模式-一种工厂只生产一种复杂的产品 class robot {public:string head;string upbody;string downbody; };class robotBuilder {private:robot *myRobot;public:robotBuilder() //构造函…...
Swift 请求用户授权以跟踪其跨应用或网站的活动
步骤1:导入框架 首先,需要在Swift文件中导入AppTrackingTransparency框架。 import AppTrackingTransparency import AdSupport步骤2:请求跟踪许可 在适当的地方请求用户的跟踪许可。通常,这个请求会在应用启动时或者在用户执行…...
最新版npm详解
如:npm中搜索 jQuery image.png image.png 接地气的描述:npm 类似于如下各大手机应用市场 image.png image.png 查看本地 node 和 npm 是否安装成功 image.png image.png 或 npm install -g npm image.png image.png image.png image.png image.…...
超值分享50个DFM模型格式的素人直播资源,适用于DeepFaceLive的DFM合集
50直播模型:点击下载 作为直播达人,我在网上购买了大量直播用的模型资源,包含男模女模、明星脸、大众脸、网红脸及各种稀缺的路人素人模型。现在,我将这些宝贵的资源整理成合集分享给大家,需要的朋友们可以直接点击下…...
Python——一维二维字典数据转化为DataFrame的方法
import pands as pddf pd.DataFrame(dict)...
OpenProject API集成深度解析:构建企业级工作流自动化引擎
OpenProject API集成深度解析:构建企业级工作流自动化引擎 【免费下载链接】openproject OpenProject is the leading open source project management software. 项目地址: https://gitcode.com/GitHub_Trending/op/openproject 在当今的软件开发与项目管理…...
华为OD机考双机位C卷 - 游戏分组 (Java)
游戏分组 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 华为OD机试双机位C卷真题目录(Java)点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(Java题解) 题目描述 有n(n为2到24之间的偶数,包含2和24)位玩家参与一款在线对战游戏,游…...
G-Helper:你的华硕笔记本性能调校终极方案
G-Helper:你的华硕笔记本性能调校终极方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, and oth…...
3个理由告诉你,为什么Mac用户需要Turbo Boost Switcher这个终极性能控制工具
3个理由告诉你,为什么Mac用户需要Turbo Boost Switcher这个终极性能控制工具 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher Turbo Boost Switc…...
Bootbox.js实战指南:10个真实场景中的对话框应用案例
Bootbox.js实战指南:10个真实场景中的对话框应用案例 【免费下载链接】bootbox Wrappers for JavaScript alert(), confirm() and other flexible dialogs using Twitters bootstrap framework 项目地址: https://gitcode.com/gh_mirrors/bo/bootbox Bootbox…...
Dynamic-Datasource数据源类型注册:SPI配置终极指南
Dynamic-Datasource数据源类型注册:SPI配置终极指南 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-datasource Dynamic…...
终极IE8兼容性解决方案:jQuery-Knob与excanvas深度集成指南
终极IE8兼容性解决方案:jQuery-Knob与excanvas深度集成指南 【免费下载链接】jQuery-Knob Nice, downward compatible, touchable, jQuery dial 项目地址: https://gitcode.com/gh_mirrors/jq/jQuery-Knob 在现代Web开发中,jQuery-Knob作为一款优…...
FanControl智能调控指南:从噪音优化到硬件保护的全方位解决方案
FanControl智能调控指南:从噪音优化到硬件保护的全方位解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...
胡桃讲编程:华为鸿蒙系统能装安卓安装包吗?
(地下程序员实战科普|无废话纯原理版)哈喽各位抱着老本搞开发、做音频创作、天天和各种安装包打交道的小伙伴们,我是胡桃~前面咱们刚讲完 USB 2.0 和 3.0 的速度与分级逻辑,这期来聊一个数码圈常年有人问的…...
微服务为什么会走到 RPC,以及 gRPC 到底解决了什么
大多数 gRPC 文章都从 .proto、代码生成、四种调用模式开始讲,读完之后你通常知道“怎么写”,但不一定真的明白“为什么会有这套东西”。 而工程里真正棘手的,恰恰不是语法,而是当系统从单体走向微服务之后,原来那些理…...
