Python 文件操作进阶(混合模式、替换、插入)

简介: Python 文件操作进阶(混合模式、替换、插入)

一、简介

  • r+:读写,能读能写,但都是写在文件的最后,跟追加一样,但是可以通过 seek() 调整光标位置进行调整内容。
  • w+:创建写读,这个功能基本没有意义,创建之后写一段内容,在读出来。
  • a+:追加读,文件一打开光标会在文件尾部,写的数据都是追加的形式。

二、操作

  • 操作内容
中国dzm
xyq
test
  • 简单使用
# 读取文件
f = open('test.txt', 'r+')
# 读取第一行
print(f.readline())
# 获得读取光标位置,并调整写入光标
f.seek(f.tell())
# 写入内容,上面为什么需要调整写入光标?读取跟写入的光标不是一起的,是各用各的,
# 因为 readline() 读取之后,在获取光标,获得的是读取光标位置,
# 写入光标还是在尾部的,所以需要通过 seek() 将写入光标调整到当前的写入光标位置
# 要不然内容就会被追加到尾部,而不是插入到中间指定位置
f.write('zh')
  • 由于硬盘存储机制原因,默认写入只会替换覆盖,比如光标在 10 的位置,现在写入内容 zh,这是 2 个字节,也就是会替换覆盖掉 11、12 位置上的内容:
中国dzm
zhq # 这一行的 11、12 位置就被替换了,这样就不能达到插入内容,或替换内容效果
test
  • 替换内容(其他操作)
    如果想要插入内容或者替换内容,可以避开硬盘的存储机制,也就是全部读出来,调整好了,清空之前的内容,在写进去。
# 读取内容
f = open('test.txt', 'r+')
# 加载到内存
data = f.read()
# 替换内容(或者替他操作)
data = data.replace('test', 'djy')
print(data)
# 需要将光标移动到开始位置
f.seek(0)
# 截断文件,也就是将光标之后的内容全部清空不要了,这样也就达到了清空的
f.truncate()
# 把新内容写回硬盘
f.write(data)
# 关闭
f.close()
中国dzm
xyq
djy
相关文章
|
1月前
|
开发者 Python
Python中的match-case语句:更优雅的模式匹配
Python中的match-case语句:更优雅的模式匹配
|
3月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
190 72
|
6月前
|
数据采集 监控 数据安全/隐私保护
Python正则表达式:用"模式密码"解锁复杂字符串
正则表达式是处理字符串的强大工具,本文以Python的`re`模块为核心,详细解析其原理与应用。从基础语法如字符类、量词到进阶技巧如贪婪匹配与预定义字符集,结合日志分析、数据清洗及网络爬虫等实战场景,展示正则表达式的强大功能。同时探讨性能优化策略(如预编译)和常见错误解决方案,帮助开发者高效掌握这一“瑞士军刀”。最后提醒,合理使用正则表达式,避免过度复杂化,追求简洁优雅的代码风格。
166 0
|
10月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
289 70
|
3月前
|
移动开发 安全 Linux
Python文件操作的"保险箱":with语句深度实战指南
本文深入解析Python中`with`语句的原理与高级应用,通过“保险箱”类比,形象展示资源管理机制。从上下文管理协议到实战场景,涵盖文件、数据库、网络等多种资源的高效安全处理方式,助你写出更优雅、可靠的代码。
113 1
|
4月前
|
缓存 数据库连接 数据库
Python文件操作的“保险箱”:with语句深度实战指南
本文深入探讨Python中with语句在文件操作中的应用及其优势。首先介绍其底层原理,基于上下文管理协议自动管理资源的获取与释放,避免手动关闭文件导致的资源泄漏问题。接着通过基础文件读写、异常处理进阶和复合资源管理等实战场景解析with语句的便捷性与安全性。同时,阐述如何自定义上下文管理器以满足特定需求,并分析其性能考量及优化策略。最后总结实战经验,强调优先使用内置管理器、明确异常处理以及保持代码可读性的重要性,助力开发者高效编写健壮的程序。
93 1
|
4月前
|
自然语言处理 安全 JavaScript
Python文件操作的“保险箱”:with语句深度实战指南
Python中的`with`语句是文件操作和资源管理的强大工具,如同一个智能保险箱,自动处理打开和关闭操作,避免手动管理可能引发的错误。它通过上下文管理协议(`__enter__`和`__exit__`方法)确保资源在使用后正确释放。无论是逐块读取大文件、同时读写文件,还是处理特殊编码文件,`with`语句都能简化代码并提高安全性。此外,自定义上下文管理器可扩展到数据库连接等场景,而常见错误如重复关闭文件或忽略异常也需注意。结合生成器表达式批量处理文件时,`with`语句仍能保持高效和安全。总之,`with`语句是资源管理的瑞士军刀,让复杂操作变得简单可靠。
111 1
|
4月前
|
数据采集 运维 BI
Python 文件操作进阶|使用 shutil 实现高效文件复制
在开发和运维中,处理大量文件是常见需求,如备份配置、归档日志或构建部署包。手动复制粘贴已无法满足高效需求!Python 的 `shutil` 模块提供了强大的文件操作功能,支持单文件复制、目录树迁移及自动化任务构建。本文详解 `shutil.copy()` 基础用法与进阶技巧,如批量复制、自动路径检测、时间戳命名备份等,助你实现高效自动化。结合实战案例(如自动备份系统),让你的代码更专业!学习后,欢迎交流心得,一起精进 Python 技能。关注我,获取更多编程技巧与源码分享!
|
7月前
|
存储 安全 搜索推荐
课时15:Python的交互模式
今天给大家带来的分享是 Python 的交互模式以及计算机对 Python 的开发,分为以下三个部分。 1.Python的介绍 2.Python的结构 3.保存代码
132 2
|
12月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
206 60
Python文件操作(1)

推荐镜像

更多