08.文件操作

11.文件操作

1.文件操作的函数\方法
序号函数\方法说明
1open打开文件,并且返回文件操作对象
2read将文件内容读取到内存
3write将指定内容写入文件
4close关闭文件
  • open 函数负责打开文件,并且返回文件对象
  • read/write/close 三个方法都需要通过文件对象来调用
  • 如果执行了一次read方法,读取了所有内容,那么再次调用read方法,就不能获取内容了

例:读取文件内容

文件内容:
在这里插入图片描述

代码实现:

# 1.打开文件
file = open("README")
# 2.读取文件内容
text = file.read()
print(text)
# 3.关闭文件
file.close()

运行结果:

在这里插入图片描述

2.打开文件的方式

open函数默认以只读方式打开文件,并且返回文件对象

语法如下:

f = open("文件名","访问方式")
访问方式说明
r默认模式,以只读方式打开文件。文件指针放在文件开头。文件不存在则抛出异常。
w以只写方式打开文件。文件存在就会被覆盖,文件不存在则创建新文件。
a以追加方式打开文件。文件以存在,文件指针放在文件的结尾,文件不存在,创建新文件写入。
r+以读写方式打开文件。文件指针放在文件开头。文件不存在则抛出异常。
w+以读写方式打开文件。文件不存在则创建新文件。
a+以读写方式打开文件。文件存在,文件指针会放在文件的结尾,文件不存在,创建文件进行写入。
  • 频繁地移动文件指针,会影响文件的读写效果,所以更多的时候会以只读、只写的方式来操作文件。
3.按行读取文件内容

read方法默认会把文件的所有内容一次性读取到内存

如果文件太大,对内存的占用会非常严重

readline方法:

  • readline方法可以一次读取一行内容
  • 方法执行后,会把文件指针移动到下一行,准备再次读取

读取大文件的正确姿势:

文件内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DGQTKDMG-1661934215366)(C:/Users/Aloe/AppData/Roaming/Typora/typora-user-images/image-20220831144548974.png)]

代码实现:

file = open("README")
while True:
    text = file.readline()
    # 判断是否读取到内容
    if not text:
        break
    print(text)
file.close()

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ur8PUV37-1661934215367)(C:/Users/Aloe/AppData/Roaming/Typora/typora-user-images/image-20220831144333926.png)]

4.小文件复制
  • 打开一个已有文件,读取完整内容,并写入到另一个文件中
# 小文件复制

# 1.打开
file_read = open("README")
file_write = open("README[拷贝]", "w")
# 2.读、写
text = file_read.read()
file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()
5.大文件复制
# 小文件复制

# 1.打开
file_read = open("README")
file_write = open("README[拷贝]", "w")
# 2.读、写
while True:
    #  读取一行内容
    text = file_read.readline()
    # 判断是否读取到内容
    if not text:
        break
    file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()
   # 判断是否读取到内容
    if not text:
        break
    file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值