本帖最后由 小江哥 于 2018-12-8 15:33 编辑
<3>读数据(readlines) 就像read没有参数时⼀样,readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素
#coding=utf-8 f = open('test.txt', 'r') content = f.readlines() print(type(content)) i=1 for temp in content: print("%d:%s"%(i,temp)) i+=1
f.close()
运⾏现象:
<4>读数据(readline)
#coding=utf-8
f = open('test.txt', 'r')
content = f.readline() print("1:%s"%content) content = f.readline() print("2:%s"%content) f.close()
想⼀想: 如果⼀个⽂件很⼤,⽐如5G,试想应该怎样把⽂件的数据读取到内存然后进⾏处理呢?
应⽤1:制作⽂件的备份 任务描述
输⼊⽂件的名字,然后程序⾃动完成对⽂件进⾏备份
参考代码 # 提示输⼊⽂件 oldFileName =input("请输⼊要拷⻉的⽂件名字:") 以读的⽅式打开⽂件 oldFile =open(oldFileName,'rb')
# 提取⽂件的后缀 fileFlagNum = oldFileName.rfind('.')if fileFlagNum > 0: fileFlag = oldFileName[fileFlagNum:]
# 组织新的⽂件名字 newFileName =oldFileName[:fileFlagNum] + '[复件]' + fileFlag
# 创建新⽂件 newFile =open(newFileName, 'wb')
# 把旧⽂件中的数据,⼀⾏⼀⾏的进⾏复制到新⽂件中 for lineContentin oldFile.readlines():newFile.write(lineContent)
# 关闭⽂件oldFile.close() newFile.close() ⽂件的定位读写 f = open("123.txt", "w+")
f.write("helloworld") content = f.read() print(content) # 为什么打印不出内容?
<1>获取当前读写的位置 在读写⽂件的过程中,如果想知道当前的位置,可以使⽤tell()来获取 # 打开⼀个已经存在的⽂件 f = open("test.txt", "r") str = f.read(3) print "读取的数据是 : ", str
# 查找当前位置 position =f.tell() print "当前⽂件位置 : ", position
str = f.read(3) print "读取的数据是 : ", str
# 查找当前位置 position =f.tell() print "当前⽂件位置 : ", position
f.close()
<2>定位到某个位置 如果在读写⽂件的过程中,需要从另外⼀个位置进⾏操作的话,可以使⽤seek() seek(offset, from)有2个参数 offset:偏移量 from:⽅向 demo:把位置设置为:从⽂件开头,偏移5个字节 如果在读写⽂件的过程中,需要从另外⼀个位置进⾏操作的话,可以使⽤seek() seek(offset, from)有2个参数 offset:偏移量 from:⽅向 demo:把位置设置为:从⽂件开头,偏移5个字节 demo:把位置设置为:离⽂件末尾,3字节处 # 打开⼀个已经存在的⽂件 f = open("test.txt", "r") # 查找当前位置 position =f.tell() print "当前⽂件位置 : ", position # 重新设置位置 f.seek(-3,2)
# 读取到的数据为:⽂件最后3个字节数据 str = f.read() print "读取的数据是 : ", str
f.close() |