python文件高级操作
python文件高级操作和注意事项等等
文件过大保护
由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节/字符(根据rb,或者rt指定不同的读取内容)或者readline()每次读取一行等操作重复读,避免这种情况
同时读写操作(不推荐爱使用)
- r+t: 可读、可写
- w+t: 可写、可读
- a+t: 可追加、可读
文件指针
首先硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容。
1.seek(offset,whence): offset代表文件指针的偏移量,偏移量的单位是字节个数
0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾
文件内容123456789
with open("prize2.txt","r",encoding="GBK")as file:
file.seek(4,0)
print(file.read())
file.seek(2,0)
print(file.read())
file.seek(0,2)
print(file.read())
56789
3456789
最后一次由于指针指到了最后,所以读取内容为空
2.tell(): 每次统计都是从文件开头到当前指针所在位置
with open("prize2.txt","r",encoding="GBK")as file:
file.seek(4,0)
print(file.read())
print(file.tell())
56789
9
3.truncate(n): truncate(n)是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate()要在r+或a或a+等模式下测试效果。它的参照物永远是文件头。并且truncate()不加参数,相当于清空文件。
源文件 :123456789
with open("prize2.txt","a",encoding="GBK")as file:
file.truncate(2)
截取后:12
注意的是,它是按照字节截取的,所以遇到多字节组成的字符需要注意,截取后乱码的问题
调用系统功能操作文件
将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件。(模拟文件修改)
import os
with open("prize2.txt","r",encoding="GBK")as file1,\
open("prize4.txt","a",encoding="GBK") as file2:
for line in file1:
line=line.replace("1","2")
file2.write(line)
os.remove('prize2.txt')
os.rename('prize4.txt', 'prize2.txt')
print('done...')
总而言之,修改文件内容的思路为:以读的方式打开原文件,以写的方式打开一个新的文件,把原文件的内容进行修改,然后写入新文件,之后利用os模块的方法,把原文件删除,重命名新文件为原文件名,达到以假乱真的目的。
参考博客
https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640
python文件高级操作的更多相关文章
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- Python文件基础操作(IO入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- Python 文件常见操作
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python 文件 IO 操作
Python 的底层操作 * 其实Python的文件IO操作方法,和Linux底层的差不多 打开 f = open(filename , "r") 后面的 "r" ...
- python文件的操作
文件的操作,归根结底就只有两种:打开文件.操作文件 一.打开文件:文件句柄 = open('文件路径', '模式') python中打开文件有两种方式,即:open(...) 和 file(...) ...
- ~~Python文件简单操作~~
进击のpython Python文件操作 在说Python的文件操作之前 我们可以先思考一个问题 平时我们是怎么对电脑中的文件进行操作的呢? 打开电脑⇨找到文件⇨打开文件⇨读文件⇨修改文件⇨保存文件⇨ ...
- Python 文件读写操作实例详解
Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...
- 12、python文件的操作
前言:本文主要介绍python中文件的操作,包括打开文件.读取文件.写入文件.关闭文件以及上下文管理器. 一.打开文件 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处 ...
随机推荐
- MySql数据库优化必须注意的四个细节(方法)
MySQL 数据库性能的优化是 MySQL 数据库发展的必经之路, MySQL 数据库性能的优化也是 MySQL 数据库前进的见证,下文中将从从4个方面给出了 MySQL 数据库性能优化的方法. 1. ...
- 前端技术之:JavaScript Test 断言库
expect 声称可以写更好的断言. https://github.com/mjackson/expect chai 可以写BDD样式的断言,也可以写TDD样式的断言,可用于Node.js与浏览器 ...
- python pytesseract使用
正确使用方法 1.tesseract-orc安装 tesseract-ocr-setup-3.05.00dev.exe下载 2.pytesseract pip install pytesseract ...
- tensorflow制作tfrecord格式数据
tf.Example msg tensorflow提供了一种统一的格式.tfrecord来存储图像数据.用的是自家的google protobuf.就是把图像数据序列化成自定义格式的二进制数据. To ...
- 精心整理(含图版)|你要的全拿走!(R数据分析,可视化,生信实战)
本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/ZEjaxDifNATeV8fO4krOIQ更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号. 为 ...
- 基本数据类型(While循环,For循环,列表以及相关用法)
正常在没有学习循环情况下,我们要输出同样的语句,需要重复打印.相当重要!!!! While循环 将输出放在一行 end=""默认是换行 print("Hello Worl ...
- 最新JetBrains PyCharm 使用教程--下载安装Python库(五)
最新JetBrains PyCharm 下载安装Python库
- vmware centos共享文件夹
vmware centos共享文件夹 查看VMware Tools 是否安装成功 <pre>vmware-hgfsclient</pre> 出现共享文件夹<pre> ...
- java jar包在dos框运行步骤演练
1.选择需要打包的 java project 2.右击, 选择export点击 , 3 选择java选项中的jar file选项 , 点击下一步 4 确认你需要的打包的项目, 点击下一步 5 ...
- Cauchy-Binet公式的证明 及 对Denton et al. (2019)的个人注(1)
------------恢复内容开始------------ 据新闻报道数学天才陶哲轩和3个物理学家研究出一个只用特征值就可以计算矩阵特征向量的公式, 我感觉很有趣, 这应该能够应用在很多领域中, 所 ...