python学习笔记day08 文件功能详解
file.read():读取文件的全部内容
file=open("dang",mode='r+',encoding='utf-8') print(type(file.read())) #str对象 file.close()
read()函数中可以写参数,指定读取几个字符(字符:你能看到的文字最小组成单位)
file=open("dang",mode='r+',encoding='utf-8') print(file.read(6)) #str对象 只读取前六个字符 file.close()
file.seek():移动光标的位置,读取的是字节(utf-8 一个英文字符一个字节表示;一个中文字符用三个字节表示)
file=open("dang",mode='r+',encoding='utf-8') file.seek(6) #由于seek是按照字节读的,所以读取中文时seek中的参数必须是3的倍数,由于英文一个字符用一个字节表示,所以seek参数无所谓 print(file.read(5)) file.close()
运行结果:
需要注意:
read()函数以字符读取的,里面参数是几就代表需要读取几个字节;
seek()函数是以字节读的,如果文件中存储的都是中文,那么seek参数必须是3的倍数,因为utf-8一个中文字符用三个字节表示;如果文件存储的都是英文,那么seek参数无所谓了,因为一个英文字符只用一个字节表示;
file.tell() 告诉文件此时的光标在哪里,断点续传中有用;
file=open("dang",mode='r+',encoding='utf-8') file.seek(4) #因为文件存储的英文字符,seek()参数可以不是3倍数,一个英文字符用一个字节表示 print(file.tell()) #返回光标的位置 此时应该是4 因为上面光标移动到4了 # print(file.read(5)) file.close()
比如读取倒数第几个字符:
file=open("dang",mode='r+',encoding='utf-8') print(file.read()) #读完之后,光标定位在最后一个位置 index=file.tell() file.seek(index-6) #由于是英文字符,所以seek(index-6) 就是从倒数第六个字符开始读;如果是中文字符的话就是从倒数第二个字符开始读 print(file.read()) #从倒数第六个字符开始读,因为光标定位在倒数第六个字符;
readline():仅仅读取文件的一行--->str
file=open("dang",mode='r',encoding='utf-8') line=file.readline() print(line) file.close()
我们也可以使用readline()函数一行一行读文件,迭代读取多行:
file=open("dang",mode='r',encoding='utf-8') for i in range(3):line=file.readline().split() #d读取每一行,然后split函数把尾部的换行符等去掉,把readline得到的str-->listprint(line) file.close()
realdines():读取文件全部内容,存成一个list,文件每一行存成list的一个元素;
file=open("dang",mode='r+',encoding='utf-8') contents=file.readlines() #读取全部内容,每一行作为list的一个元素存储 print(contents) file.close()
文件操作的另外两个小知识点:
for line in file: 读取文件的全部内容一行一行;
file=open('dang',mode='r',encoding='utf-8') for line in file:print(line.split()) file.close()
with open as 方式打开文件,不用对文件close
之前open()打开文件,最后都得file.close() 很麻烦,现在可以这样:
with open('dang',mode='r+',encoding='utf-8') as file:print(file.read()) #可以对文件file句柄进行其他操作
并且使用with open as 可以同时打开多个文件:
with open("dang",mode='r',encoding='utf-8') as file1,open('xixi.txt',mode='r+',encoding='utf-8') as file2:print(file1.read()) #读取文件dang 相对路径for line in file2: #读取文件xixi.txtprint(line.split())
转载于:https://www.cnblogs.com/xuanxuanlove/p/9530203.html
python学习笔记day08 文件功能详解相关推荐
- C语言学习笔记 | 进阶 | 文件操作详解(万字精心制作)
- java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解
Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...
- [原创]Saltstack学习笔记:命令参数详解以及配置文件说明
很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...
- Laravel学习笔记汇总——Collection方法详解
## Laravel学习笔记汇总--Collection方法详解 本文参考:https:// laravel.com/docs/8.x/collections // 返回整个底层的数组 collect ...
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- Python学习笔记:文件(File)
Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- 【学习笔记】线段树详解(全)
[学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...
- Python学习笔记--exe文件打包与UI界面设计
exe文件打包与UI界面设计 前言 一.基于tkinter实现的UI设计 1.1 库的选择及思路 1.2 定位方法的选用 1.3 Frame控件 1.4 变量设置 1.5 批量设置 1.6 Text文 ...
最新文章
- c++ 遍历多级目录
- 1669 DINIC+二分
- springboot配置文件_SpringBoot系列干货:配置文件详解
- 10亿级!淘宝大规模图像检索引擎算法设计概览
- C#中Split用法
- 理解快速傅里叶变换(FFT)算法
- Linux系统时间和java的时间不一致
- OGNL(Object-Graph Navigation Language对象图定位语言)和struts2标签
- Linux内核学习路线 ,应从入门到深入,学内核就来零声教育
- 使用tkinter打造一个小说下载器,想看什么小说,就下什么
- mysql数据库三表联查
- LWIP源码分析——ip4.c
- Black-Scholes-Merton 方程解(基于风险中性定价)
- STM32开发手册-IAP流程
- WebSocket:响应头‘Sec-WebSocket-Accept‘的生成
- uniapp从企业微信、微信公众号获取地址栏的参数
- ajax上传图片java6,java ajax上传图片返回json数
- 按位取反运算,简短精炼
- Nginx搭建web服务器完美实现正向https、反向、图片代理
- 创建炫酷 CSS 背景效果的 10 个代码片段