python 文件数据修改

内容概要

  • 例题解析
  • 文件内光标的移动
  • 文件内数据的修改

内容详细

例题解析

# 简易版本的拷贝功能 1.获取待拷贝的目标文件路径 2.获取即将拷贝到哪个地方的新路径 3.利用文件操作实现数据拷贝 # 待拷贝的文件路径 wait_copy_file = input('file path>>>:').strip() # 新的文件路径 new_file_path = input('new path>>>:').strip() # 以r模式打开步骤一的路径 以w模式打开步骤二的路径 with open(r'%s' % wait_copy_file, 'rb') as f1,\ open(r'%s' % new_file_path, 'wb') as f2: for line in f1: f2.write(line)

二进制模式读写操作

with open(r'a.txt', 'rb') as f: print(f.read()) print(f.read(6).decod('utf8')) with open(r'a.txt', 'r', encoding='utf8') as f: print(f.read()) print(f.read(4)) ''' read() 括号内可以放数字 在t模式下表示字符个数 在b模式下表示字节个数 英文字符统一用一个bytes来表示 中文字符统一用三个bytes来表示 '''

文件内光标的移动

with open(r'b.txt', 'rb') as f: print(f.read(4).decode('utf8')) print(f.tell()) # 查看光标移动了多少个字节 f.seek(3, 1) print(f.read().decode('utf8')) """ 控制文件内光标的移动 f.seek() f.seek(offset,whence) offset表示位移量 始终是以字节为最小单位 正数从左往右移动 负数从右往左移动 whence表示模式 0:以文件开头为参考系(支持tb两种模式) 1:只支持b模式 以当前位置为参考系 2:只支持b模式 以文件末尾为参考系 """ # 小练习:实现动态查看最新一条日志的效果 import time with open('a.txt', 'rb') as f: f.seek(0, 2) while True: line = f.readline() if len(line) == 0: # 没有内容 time.sleep(0.5) else: print(line.decode('utf-8'), end='')

文件的内容修改

# 方式1 覆盖 with open(r'c.txt','r',encoding='utf8') as f: data = f.read() # print(type(data)) with open(r'c.txt','w',encoding='utf8') as f1: new_data = data.replace('tony','jason') f1.write(new_data) # 方式2 新建 import os with open('c.txt', mode='rt', encoding='utf-8') as read_f, \ open('c.txt.swap', mode='wt', encoding='utf-8') as write_f: for line in read_f: write_f.write(line.replace('SB', 'kevin')) os.remove('c.txt') # 删除原文件 os.rename('c.txt.swap', 'c.txt') # 重命名文件 """ 自己总结两种方式的优缺点 """

__EOF__

本文作者向上
本文链接https://www.cnblogs.com/ydy001/p/15544931.html
关于博主:没有收拾残局的能力,就别放纵善变的情绪
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   风花雪月*  阅读(252)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示