python 文件指针及文件覆盖
1、文件纯净模式延伸
r+t:可读、可写 w+t:可写、可读
with open('b.txt','w+t',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
a+t:可追加写、可读 2、控制文件指针移动
方法:f.seek(offset,whence)
offset代表文件指针的偏移量,单位是字节bytes
whence代表参照物,有三个取值
(1)0:参照文件的开头
(2)1:参照当前文件指针所在的位置
(3)2:参照文件末尾
PS:快速移动到文件末尾f.seek(0,2)
强调:其中whence=1和whence=2只能在b 模式下使用
with open(r'rrf.txt','r+b')as f:
# f.readlines()
# f.seek(6,0) #从开头移动6个字节
# print(f.readline().decode('UTF-8') )
# print(f.tell() )
# with open(r'rrf.txt', 'r+b')as f:
# f.readline()
# f.seek(9,1) #从当前指针位置移动9个字节
# print(f.readline() .decode('UTF-8') )
with open(r'rrf.txt', 'r+b')as f:
f.seek(-5,2) #指针在末尾,往前读5个字节
print(f.read() .decode('UTF-8') )
print(f.tell())
3、文件覆盖(修改)方法
(1)在原文件上进行修改操作,再写入原文件
优点:只有一个文件
缺点:如果文件过大会占用内存资源
with open('rrf.txt','r',encoding= 'UTF-8')as f :
x=f.read()
x.replace('我的','qqc') #修改内容
with open('rrf.txt','w',encoding= 'UTF-8')as f:
f.write(x )
(2)将原文件内容修改后写入新的文件,再改名
优点:同一时刻只有一行内容在内存
缺点:有两个文件
import os
with open('rrf.txt','r',encoding= 'UTF-8')as f,\
open('bbt','w',encoding='UTF-8' )as f1:
for x in f:
f1.write(x.replace('半倚深秋','qq'))
os.remove('rrf.txt') # 删除老文件
os.rename('bbt','rrf.txt') #把新文件名字改成老文件名字
python 文件指针及文件覆盖的更多相关文章
- 02-IOSCore - NSFileHandle、合并文件、文件指针、文件查看器
[day0201_NSFileHandle]:文件句柄 1 NSFileHandle 文件对接器.文件句柄 常用API: - (NSData *)readDataToEndOfFile;读取数据到最后 ...
- Java-->利用文件指针分割文件
--> 大体上和字节流分割的方式没什么区别,只是加入文件指针确定要开始分割的位置... package com.dragon.java.splitmp3; import java.io.File ...
- Linux下的文件操作——基于文件指针的文件操作(缓冲)
目录操作 创建和删除目录: 原型为: #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> ...
- python3 文件读写操作中的文件指针seek()使用
python中可以使用seek()移动文件指针到指定位置,然后读/写.通常配合 r+ .w+.a+ 模式,在此三种模式下,seek指针移动只能从头开始移动,即seek(x,0) . 模式 默认 写方式 ...
- Python(三)——文件操作
在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...
- python应用:TXT文件的读写
python读写TXT文件不需要导入包 python中常用的读写方式: 文件打开模式 描述 r 以只读模式打开文件,并将文件指针指向文件头:如果文件不存在会报错 w 以只写模式打开文件,并将文件指针指 ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- python 读写文件和设置文件的字符编码
一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...
- python学习第十八天 --文件操作
这一章节主要讲解文件操作及其文件读取,缓存,文件指针. 文件操作 (1)文件打开:open(filepath,filemode) filepath:要打开文件的路径 filemode:文件打开的方式 ...
随机推荐
- pycharm导入本地py文件时,模块下方出现红色波浪线时如何解决
有时候导入本地模块或者py文件时,下方会出现红色的波浪线,但不影响程序的正常运行,但是在查看源函数文件时,会出现问题 问题如下: 解决方案: 1. 进入设置,找到Console下的Python Co ...
- 如何下载kubenetes最新的rpm包?
一,新增aliyun的软件仓库 tee /etc/yum.repos.d/kubernetes.repo <<-'EOF' [kubernetes] name=Kubernetes bas ...
- hadoop集群运行jps命令以后Datanode节点未启动的解决办法
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而da ...
- Jmeter入门(压力测试)
Jmeter介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用. ...
- Java集合源码学习(三)LinkedList
前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂度很大.但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难.今天学习另外的 ...
- 【AtCoder】AGC031
A - Colorful Subsequence 答案是 \(\prod_{c = 'a'}^{'z'} (cnt[c] + 1)\) #include <bits/stdc++.h> # ...
- Linux图形化监控网络流量:speedometer查看流量
Speedometer是一个带宽控制台和对数带宽显示的文件下载进度监控,以及一个简单的命令行界面.其目的是测量和显示网络连接或数据存储在文件中的数据率. Speedometer 2.8该版本增加了一个 ...
- docker 安装配置
1. 安装docker 环境是ubuntu 14.04 参照: https://help.aliyun.com/document_detail/60742.html # step 1: 安装必要的一 ...
- sublime text 自定义插件,自动插入署名,自定义插入日期,自动生成头部注释
自动插入署名 菜单下面的 一.工具(tool)>新代码段(new snippet…) 看到以下代码 <snippet> <content><![CDATA[ Hel ...
- 51Nod1123 X^A Mod B 数论 中国剩余定理 原根 BSGS
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1123.html 题目传送门 - 51Nod1123 题意 $T$ 组数据. 给定 $A,B,C$,求 ...