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 文件功能详解相关推荐

  1. C语言学习笔记 | 进阶 | 文件操作详解(万字精心制作)

  2. java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解

    Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...

  3. [原创]Saltstack学习笔记:命令参数详解以及配置文件说明

    很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...

  4. Laravel学习笔记汇总——Collection方法详解

    ## Laravel学习笔记汇总--Collection方法详解 本文参考:https:// laravel.com/docs/8.x/collections // 返回整个底层的数组 collect ...

  5. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  6. Python学习笔记:文件(File)

    Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...

  7. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  8. 【学习笔记】线段树详解(全)

    [学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...

  9. Python学习笔记--exe文件打包与UI界面设计

    exe文件打包与UI界面设计 前言 一.基于tkinter实现的UI设计 1.1 库的选择及思路 1.2 定位方法的选用 1.3 Frame控件 1.4 变量设置 1.5 批量设置 1.6 Text文 ...

最新文章

  1. c++ 遍历多级目录
  2. 1669 DINIC+二分
  3. springboot配置文件_SpringBoot系列干货:配置文件详解
  4. 10亿级!淘宝大规模图像检索引擎算法设计概览
  5. C#中Split用法
  6. 理解快速傅里叶变换(FFT)算法
  7. Linux系统时间和java的时间不一致
  8. OGNL(Object-Graph Navigation Language对象图定位语言)和struts2标签
  9. Linux内核学习路线 ,应从入门到深入,学内核就来零声教育
  10. 使用tkinter打造一个小说下载器,想看什么小说,就下什么
  11. mysql数据库三表联查
  12. LWIP源码分析——ip4.c
  13. Black-Scholes-Merton 方程解(基于风险中性定价)
  14. STM32开发手册-IAP流程
  15. WebSocket:响应头‘Sec-WebSocket-Accept‘的生成
  16. uniapp从企业微信、微信公众号获取地址栏的参数
  17. ajax上传图片java6,java ajax上传图片返回json数
  18. 按位取反运算,简短精炼
  19. Nginx搭建web服务器完美实现正向https、反向、图片代理
  20. 创建炫酷 CSS 背景效果的 10 个代码片段

热门文章

  1. Regex解析字符串
  2. 第四周实践项目7 多项式求和
  3. 学习OpenCV——SVM
  4. Visual Studio C++ 画图【极简版】
  5. pandas将Series变成键值对
  6. 13.5 常见Random类
  7. 积性函数与线性筛(还不会)
  8. 【学习笔记】斜率优化
  9. 高斯消元处理无解|多解情况 poj1830
  10. python-pdf添加水印