很少有博主讲过python中文件的开关及读写定位
前言
大家好,我是JieJie!编程路上一个人可能走的更快,但一群人才能走得更远,关注JieJie一起学习不迷路!今天分享的是 模块化编程以及第三方模块的安装,快学起来吧,秃头走起1.文件操作介绍
1.1文件作用
就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,加载到内存中,而不必重新制作一份,省时省力
1.2打开文件open
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)
示例如下: f = open( "test.txt", "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! )
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()
毕业之后你自费上过最贵的课是什么?前段时间我参与了小说创作培训课,一对一辅导,大约学了一个月,说好的学费15000元,学完付款,但最后老师死活不肯收我的钱。期间,我与老师喝酒花了5万元以上。家人是很支持我去学习的,
第十二代酷睿推出后,市场或会有什么变化?12代酷睿的性能就不细说了,简单来说就是单核性能领先AMD,多线程性能也进步明显,如果光说游戏性能的话,i512600K就可以超过AMD全家了,在MSDT上面,Intel的优势会进
联想公司是否有罪?公司何来之罪。所以人质疑的是联想高管,是柳传志,是杨元庆,是曾茂朝等一众过去的,现在的联想高层管理人员。质疑曾茂朝的老婆胡锡兰为什么退休了竟然又持股如此之高。没有人希望联想倒,希望
高负债率的联想,会破产吗?联想破产不破产已经无所谓,反正他也没做什么对国家对民族有意义的事。而联想失去了民心,已经在百姓心中破产了!会破产的。特别是这一次事件,在国内市场,如果说快速失去很大的市场份额,影响
网贷平台倒闭跑路后,欠的钱是不是没人来要了?是,只要是不合法规的网贷平台,现在除了拼命打电话,发信息,对欠款人无计可施,我一个熟人,欠了各种网贷,什么京东白条,拍拍贷几十万,就没有还,他说只要有强大的心理,随便平台爆通迅录,
传联通与移动由国家统筹固网资源四家可共享同一基站传联通与移动由国家统筹固网资源四家可共享同一基站来源运营商世界网有业内知情人士向运营商世界网爆料称,国家将统筹四大运营商的所有资源,进行跨界整合,开放共享。据工信部发布的通信业经济
2022年中国氢能源汽车行业市场现状及发展趋势分析中商情报网讯氢能源汽车,是指以蓄电池作为辅助能源在普通汽车的基础上,安装了电机控制器蓄电池转把闸把等操纵部件和显示仪表系统的机电一体化的个人交通工具。我国氢能源汽车在力矩传感器技术
多年以后,你再回头看自己以前的摄影作品是什么感觉?现在摄影太普及了,没有什么作品之分,拍摄照片也是记录生活记录美的时刻定格瞬间,看看以前拍的照片也就是回头看我过往的生活去过的地方,自我骄傲娱乐心情啦?感谢老胶片能让我珍惜每一个瞬间
Promise封装axiosimportaxiosfromaxiosimportstorefromstoreimportMessageBox,Message,Loadingfromelementuiimpor
每日优鲜打造如何实现优鲜便民,成为优质电商零售电商行业的竞争正如火如荼的进行,在社区电商的这场战役中,每日优鲜率先完成上市,并以十分优异的成绩获得了市场和用户的一致认可,其背后快速发展背后的秘诀是什么呢?每日优鲜的崛起还要
十三香真的香吗?刚入手爱疯十三一星期左右之前一直使用安卓机刚拿上手迫不及待就录了一个开箱视频用我的安卓手机录的之后便是传输数据遗憾的是传完数据打开爱疯开箱视频没了安卓上也没了,就很郁闷啊我买的粉色