【稀有】很少有博主讲过:python中文件的开关及读写定位
✅作者简介:大家好我是姐姐划船吗?让我们一起共同进步吧!🏆
📃个人主页:姐姐划船吗?
🔥系列专栏:学会python,逆天改命
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞
💬格言:静坐要辨己过,闲谈莫论人非🔥
学习目标:
✏️ 了解 文件的操作与介绍 ✏️ 了解什么是文件的开关 ✏️ 了解文件的读写操作 ✏️ 了解文件读写定位 |
目录
🐊1.文件操作介绍
🦓1.1文件作用
🦓1.2打开文件open
🐊2.文件的开关及读写
🦓2.1文件的读写:
🐅2.1.1写数据(write):
🐅2.1.2读数据(read):
🐅2.1.3读数据(readlines):
🦓2.2举例
🐅2.2.1练一练1
🐅2.2.2练一练2
🐅2.2.3练一练3
🦓2.3文件读写定位
🐅2.3.1python2 中的 seek
🐅2.3.2python3 中的 seek
结束语🏆🏆🏆
1.文件操作介绍
1.1文件作用
就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,加载到内存中,而不必重新制作一份,省时省力
1.2打开文件open
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)
示例如下: f = open( 'test.txt', 'w') |
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
访问模式 |
说明 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。如果文件不存在会崩溃。Read |
w |
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。Write |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。如果文件不存在会崩溃 read binary |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。如果文件不存在会崩溃 |
w+ |
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。如果文件不存在会崩溃。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写 |
2.文件的开关及读写
2.1文件的读写:
2.1.1写数据(write):
使用write()可以完成向文件写入数据
f.write(hello world!\n) |
2.1.2读数据(read):
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度( 单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
f.read() |
2.1.3读数据(readlines):
就像read没有参数时一样,readlines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素.
2.2举例
f = open("text.txt","w",encoding="utf-8") f.write("hello 大家好!") f.close() f = open("text.txt","r",encoding="utf-8") print(f.read()) f.close() # 关闭这个文件 |
2.2.1练一练1
需求描述:
输入文件的名字,然后程序自动完成对文件进行拷贝
例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,
会把“test.txt”文件的内容复制一份到文件名叫“[复制]-test.txt”文件中。
#打开要复制的文件 oldFileName = input("请输入您要复制的文件名:") oldFile = open(oldFileName,"r",encoding="utf-8")
#创建一个新文件用于保存要复制的内容 newFileName = "[复制]-"+oldFileName newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中 newFile.write(oldFile.read())
#关闭两个文件 oldFile.close() newFile.close() |
2.2.2练一练2
需求描述:
输入文件的名字,然后程序自动完成对文件进行拷贝
例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,
会把“test.txt”文件的内容复制一份到文件名叫“test[复制].txt”文件中。
#打开要复制的文件 oldFileName = input("请输入您要复制的文件名:") oldFile = open(oldFileName,"r",encoding="utf-8")
#用于分割文件名 #1.得到.的位置 position = oldFileName.rfind(".")
#2.得到.之前的部分 pre = oldFileName[:position]
#3.得到.之后的部分,包含点 sux = oldFileName[position:]
#4.拼接一个新的名字 newFileName = pre+"[复制]"+sux
#创建一个新文件用于保存要复制的内容 newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中 newFile.write(oldFile.read())
#关闭两个文件 oldFile.close() newFile.close() |
支持超大文件的复制支持超大文件的复制
2.2.3练一练3
需求描述:
输入文件的名字,然后程序自动完成对文件进行拷贝
例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,
会把“test.txt”文件的内容复制一份到文件名叫“test[复制].txt”文件中
#打开要复制的文件 oldFileName = input("请输入您要复制的文件名:") oldFile = open(oldFileName,"r",encoding="utf-8")
#用于分割文件名 #1.得到.的位置 position = oldFileName.rfind(".")
#2.得到.之前的部分 pre = oldFileName[:position]
#3.得到.之后的部分,包含点 sux = oldFileName[position:]
#4.拼接一个新的名字 newFileName = pre+"[复制]"+sux
#创建一个新文件用于保存要复制的内容 newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中 #增加支持大文件复制 while True: readContent = oldFile.read(1024) if len(readContent) == 0: break newFile.write(readContent)
#关闭两个文件 oldFile.close() newFile.close() |
2.3文件读写定位
获取当前读写的位置 tell
在读写文件的过程中,如果想知道当前的位置,可以使用 tell()来获取
置 定位到某个位置 seek
使用 seek()
seek(offset, from)有 2 个参数
offset:偏移量
from:方向
0:表示文件开头 1:表示当前位置 2:表示文件末尾
2.3.1python2 中的 seek
定位到文件开头:seek(0,0),seek(正数,0) ;不支持 seek(负数,0) 定位到当前位置:seek(0,1),seek(正数,1) ,(负数,1) 定位到文件末尾:seek(0,2),seek(正数,2) ,(负数,2) |
2.3.2python3 中的 seek
Python3 中的 seek: 定位到文件开头:seek(0,0),seek(正数,0) ;不支持 seek(负数,0) 定位到当前位置:seek(0,1) ;不支持 seek(正数,1),(负数,1) 定位到文件末尾:seek(0,2) ;不支持 seek(正数,2),(负数,2) |
f = open("test.txt","r",encoding="utf-8") str = f.read(3) print("读取的数据是:",str)
#查找当前位置 position = f.tell() print("当前文件位置:",position)
#重新设立位置 f.seek(8,0)
#查找当前位置 position = f.tell() print("当前文件位置:",position) f.close() |
结束语🏆🏆🏆
喜欢的请来个三连支持一下吧,谢谢谢谢!!!
您的支持是我最大的动力!!!