A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小江哥 黑马粉丝团   /  2018-12-8 15:08  /  1246 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小江哥 于 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()

1 个回复

倒序浏览
一个人一座城0.0 来自手机 中级黑马 2018-12-8 20:56:33
沙发
到此一观
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马