python学习9—文件基本操作与高级操作
python学习9—文件基本操作与高级操作
1. 文件基本操作
- 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并按照该编码方式读取文件,若文件使用utf-8编码,则打开需指定编码
- 通过句柄对文件操作:data = f.read()
- 关闭文件:f.close()
2. 文件操作模式
- r,只读模式,不可写,f = open('filename','r',encoding='utf-8')
- f.readable()判断文件是否可读
- f.readline()读取文件中的一行,随着光标移动,依次读取各行
f = read('xxx')
f.read()
f.readline() #此处读取时,光标已经到文件最后,则此处读取的值为空
- f.readlines()读取所有行,并把每一行保存为一个字符串,所有行保存为列表
- open()包含参数newline,f=open('1.txt','r',newline=''),python会自动将不同平台的换行符号均转换为\n,在windows平台上,换行符为\r\n
- w,只写模式,不可读,f = open('filename','w',encoding='utf-8'),写入文件的内容必须是字符串
- 如果文件存在,则清空文件再进行后续操作
- 如果文件不存在,则会新建一个文件
- f.write('contents\n'),一行一行的将内容写入文件,从当前光标所在位置写入
- f.writelines(list),将内容写到一个列表里,在将列表里的各个元素分行写入文件中
- f.writeable(),判断文件是否可写
- x,只写模式,若文件不存在则创建该文件,若文件存在则报错
- a,追加模式,f = open('filename','a',encoding='utf-8')
- a模式本身就是写模式,只不过是采用追加的方式去写文件
- r+,读写模式,f = open('filename','r+',encoding='utf-8')
- w+,x+,a+,写读模式
- rb,wb,xb,ab,以字节的方式读写,不能指定编码
fr = open('TextFile1.txt','rb')
print(fr.read().decode('gbk'))
f = open('test22.py','wb')
f.write(bytes('asdfghjkl\n', encoding = 'utf8'))
f.write('中文'.encode('utf8'))
注:从二进制转换为字符串显示为decode(),从字符串变为二进制存储为encode()
自动关闭文件的方式:
with open('file','w') as f:
f.write('asdf')
with open('file1','w') as f1, open('file2','w') as f2
f1.write('asdf')
f2.write('ghjkl')
3. 文件操作方法
- f.closed,判断文件是否关闭
- f.encoding,显示文件打开的编码方式
- f.flush(),将内存中文本刷新到文件中,更新文件内容
- f.name,文件名
- f.tell(),显示当前光标所在位置,按照字节计数
- f.seek(0),将光标移动到0位置,按照字节计数
- f.read(4),按照字符计数,读取4个字符
- f.truncate(10),截取前10个字节,写入原本的文件,覆盖源文件
4. 文件高级操作
- f.seek(,0),0表示光标位置采用绝对位置
- f.seek(,1),要求文件以b模式打开,采用相对位置,累加
- f.seek(,2),采用倒序,以b模式打开,从文件末尾开始移动光标
- 循环文件的推荐方式:下面第一种方式读取所有文件内容,然后一行一行的循环;而第二种方式只是一行一行读取文件的内容
for i in f.readlines():
print(i) #推荐
for i in f:
print(i)
5. 读取大文件最后一行
关键思想:每次增加从文件末尾读取字符串的个数,直到完全读取了最后一行,并用索引[-1]取出读取数据的最后一行。
for i in f:
offs=-10
while True:
f.seek(offs, 2)
data=f.readlines()
if len(data)>1:
print('文件的最后一行是%s' %(data[-1]. decode('utf-8')))
break
offs*=2
python学习9—文件基本操作与高级操作的更多相关文章
- Go语言学习教程:xorm表基本操作及高级操作
在上节内容中,我们介绍了xorm框架表结构的映射规则和表结构的操作.本节课,继续来深入学习表结构基本操作和高级查询的相关功能. 表结构基本操作 对表结构的操作最常见的操作是查询和统计相关的方法,我们首 ...
- Python对文件和文件夹的高级操作模块shutil
shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil. ...
- Python中对 文件 的各种骚操作
Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- Python学习之==>文件操作
1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...
- python学习8 文件的操作
本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...
- python学习day8 文件操作(深度学习)
文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...
- python学习(11)文件的读写操作
1.读文件的7种操作模式 操作模式 具体含义 'r' 读取 (默认) 'w' 写入(会先截断之前的内容) 'x' 写入,如果文件已经存在会产生异常 'a' 追加,将内容写入到已有文件的末尾 'b' 二 ...
随机推荐
- Example of dynamic programmatic description
- Suppose there are some itineraries in the Itinerary page, and you want to check on all of them. Se ...
- 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...
- sql语句(删除重复数据只保留一条)
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...
- 怎么在vue-cli中利用 :class去做一个底层背景或者文字的点击切换
// html <div class="pusherLists" :class="{hidden: isHidden}"> <span @cl ...
- document.createDocumentFragment()的用法
createDocumentFragment有什么作用呢? 调用多次document.body.append(),每次都要刷新页面一次.效率也就大打折扣了,而使用document_createDocu ...
- 解决HDFS小文件带来的计算问题
hive优化 一.小文件简述 1.1. HDFS上什么是小文件? HDFS存储文件时的最小单元叫做Block,Hadoop1.x时期Block大小为64MB,Hadoop2.x时期Block大小为12 ...
- C# 连接Excel,获取表格数据,获取多个sheet中的数据,获取多个sheet名
/// <summary> /// 获取Excel内容. /// </summary> /// <param name="sheetName"> ...
- Vmware虚拟机中安装ubuntu18 live server+Vmware Tools(用来共享本地文件夹)
一.安装Ubuntu见链接 https://ywnz.com/linuxaz/3696.html 二.安装Vmware Tools 参考:https://blog.csdn.net/a12340123 ...
- 启动Process实现多任务
from multiprocessing import Process import time '''multiprocessing模块1.跨平台的多进程模块2.提供了一个Process类的实例代表一 ...
- 循环神经网络(Recurrent Neural Network)
传统的神经网络模型,隐藏层的节点之间是无连接的,如下图所示. 而循环神经网络隐藏层的节点之间有连接,主要用于对序列数据进行分类.预测等处理.有连接意味着需要接受信息,这种网络通常用来对序列数据进行处理 ...