Python基础之文件操作及光标移动详解
作者:Kkkkangsh 发布时间:2022-12-01 02:23:17
标签:Python,文件操作,光标移动
一、文件操作
1、文件的概念
1.文件就是计算机暴露给用户操作硬盘的快捷方式
2.计算机的文件,就是用来储存某种信息的数据
3.在计算机中,文件是以二进制的方式储存信息的
2、代码打开文件的方式
方式一:
f = open(文件路径, 读写模式, encoding='utf8')
f.close()
方式二: # 子代码运行结束后会自动调用close方法关闭资源
with open(文件路径, 读写模式,encoding='utf8') as f:
须知:
# 1、open方法的第一个参数是文件路径,并且撬棍跟一些字母的组合会产生特殊的含义导致路径查找混乱 为了解决该问题可以在字符串的路径前面加字母r
D:\a\n\t
r'D:\a\n\t'
# 2、with一次性可打开多个文件
with open() as f1,open() as f2,open() as f3:
二、文件读写模式
1、'r' 只读模式 read
只能读,不能写
1.文件路径不存在:直接报错
with open(r'b.txt','r',encoding='utf8') as f:
print(f.read())
2.文件路径存在:正常读取内容
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read())
2、'w' 只写模式 write
只能写,不能看
1.文件路径不存在: # 创建新的文件
with open(r'b.txt','r',encoding='utf8') as f:
pass
2.文件路径存在: # 先清空文件内容,在重新写入
with open(r'a.txt', 'r', encoding='utf8') as f:
f.write('编写内容')
须知:
# 1、编写的内容需要自己加入换行符,在保存后u而要注意他的存在
3、'a' 尾部追写模式 add
只能在文件末尾添加数据
1.文件路径不存在: # 创建新的文件
with open(r'b.txt','a',encoding='utf8') as f:
pass
2.文件路径存在: # 在文件末尾添加
with open(r'a.txt', 'a', encoding='utf8') as f:
f.write('编写内容')
当我们在编写代码的时候 有些部分不知道写什么具体代码 但是也不能空着不写
这个时候可以使用关键字: pass
作用:是为了保证程序结构的完整性,否则会报错
三、文件操作模式
1、t 文本模式
文本模式为默认模式
1、读写模式简写:r、w、a
全称:rt、wt、at
须知:
# 1、只能操作文本文件
# 2、读写以字符为单位
# 3、需要指定encoding参数,不填写则采用计算机默认的编码
2、b 二进制模式
byte模式
1、不是默认的模式,需要指定生成
rb、wb、ab
须知:
# 1、可以操作任意文件
# 2、读写都是以bytes为单位
# 3、不需要指定encoding参数,不需要编码
不管是哪种模式,针对文件路径是否存在的情况都是一样的
四、文件诸多方法
1、read()
代码表现:
文件名.read()
须知:
# 1、一次性读取文件内容,并且光标停留在文件末尾,继续读取则没有内容
# 2、当文件内容比较多的时候,该方法还可能会造成计算机内存溢出
# 3、括号内可以填写数字,在文本模式下,表示读取几个字符
# 4、通常一个中文三个字节(或更多)一个英文字母一个字节
2、for循环
代码表现:
for 数据值 in 需要遍历的文件:
须知:
# 1、一行行读取文件内容 避免内存溢出现象的产生
3、line
1、readline
代码表现:
文件名.readline()
须知:
# 1、一次只读一行内容
2、readlines
代码表现:
文件名.readline()
须知:
# 1、一次性读取文件内容,会按照行数组织成列表的一个个数据值
4、readable
代码表现:
代码表现:
文件名.readable()
须知:
# 1、判断文件是否具备读取数据能力
5、write
1、write
用于向文件中写入指定数据
代码表示:
f = open("a.txt", 'w')
f.write("写入一行新数据")
f.close()
2、writeable
用来判断文件是否可写入数据
代码表示:
f = open("nhooo.txt", "a")
print(f.writable())
可以写入: Ture
不可写入: False
3、writelines
用于接收一个列表,一次性将列表中所有数据写入
代码表示:
f = open('a.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())
n.close()
f.close()
6、flush
用于刷新内部缓冲区,这是在python中处理fila处理时的最佳实践,可以在将新文本写入/添加到文件之前清除内部缓冲区。将内存中文件数据立刻刷到硬盘 等价于ctrl + s
代码表示:
file_object.flush()
五、文件内光标的移动
1、seek()
移动文件的读取指针到指定位置。seek函数需要使用文件对象进行调用,无返回值。
seek()有三种用法:
seek(offset,whence)
offset 控制光标移动的位移量(字节)
whence 模式
0 基于文件开头移动多少字节
1 基于光标当前所在位置移动多少字节
2 基于文件末尾移动多少字节
ps:1和2只能在二进制模式下使用 0无所谓
2、tell()
用来获取光标当前的位置(移动的字节数)
代码表示:
文件名.tell()
# 返回光标当前所在的字节数
来源:https://www.cnblogs.com/kangssssh/p/16772935.html


猜你喜欢
- 1、Directive 自定义指令在 Vue 框架下的代码中,很少用到原生 DOM 操作,那是因为在 Vue 中将原生 DOM 操作都封装成
- 前言:图像滤波是图像处理和计算机视觉中最常用、最基本的操作。主要是去除图像中的噪声,因为图像平滑处理过程中往往会使得图像变的模糊,因此又叫模
- MySQL8.0的安装及配置方法,供大家参考,具体内容如下下载:先上网站在这个网站中找到下载完成后解压缩到你需要的路径MySQL配置然后在解
- 前言上篇介绍了go-grpc-middleware的grpc_zap、grpc_auth和grpc_recovery使用,本篇将介绍grpc
- 在工控应用上,返回的数据经常会以二进制的形成存储,而这些二进制数据又是以每4个bit表示一个十六进制的数据内容。解析的时候,往往是一个字节(
- 本文实例为大家分享了Python函数式编程实现登录注册功能的具体代码,供大家参考,具体内容如下代码:def login(username,
- 如何下载:我先去MySQL首页下载最新版本的MySQL-链接:https://www.mysql.com/downloads/进入此界面下载
- 不说什么,先上代码这里先求解形如的微分方程1.欧拉法def eluer(rangee,h,fun,x0,y0):
- 我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会
- 1.基本信息? Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处理。Pa
- 前言在学习过程中发现有时候交换字典的键和值,会使得我们最后的输出结果更加直观明了,整理出以下四种交换方式(data是原字典,new_data
- 使用matplotlib中的一些函数将tensorflow中的数据可视化,更加便于分析import tensorflow as tfimpo
- 一、概念梳理链表是计算机科学里面应用应用最广泛的数据结构之一。它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧、环形缓冲和队列)
- 一个ASPJPEG组件综合操作的asp类CLASS相关文章:ASP怎么谈到应用到类的?ASP中类的详细介绍(class Property G
- 描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏。游戏规则:先选择游戏等级:初级、中级、高级
- 很多人看到PHP就以为是程序员,就以为钱很多(虽然是事实),但是也要考虑下自己是不是适合这一行,知道PHP是什么吗?PHP都有什么样的功能,
- 这个函数的使用方法,已经有前辈讲解过了,只是自己在测试的时候有一些思考,所以便写了这篇博客。下面是前辈文章的原话:seed( ) 用于指定随
- 认证登录django.contrib.auth中提供了许多方法,这里主要介绍其中的三个:1 authenticate(**cre
- 概要在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HT
- 本文实例讲述了Python迭代器与生成器基本用法。分享给大家供大家参考,具体如下:迭代器可以进行for循环的数据类型包括以下两种:1. 集合