黑马程序员技术交流社区
标题: 文件操作(下) [打印本页]
作者: 小江哥 时间: 2018-12-8 15:08
标题: 文件操作(下)
本帖最后由 小江哥 于 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()
作者: 一个人一座城0.0 时间: 2018-12-8 20:56
到此一观
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |