python笔记10-文件操作

1. 文件读取的三部曲: 打开–> 操作 -> 关闭

打开

    f = open('/etc/passwd1')
    print(f)

读操作

如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;

    content = f.read()
    print(content)

写操作

    f.write("hello")

判断文件对象拥有的权限

    print(f.readable())  # True
    print(f.writable())  # False

关闭

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源.

    f.close()
    判断文件对象是否关闭, 已经关闭返回True
    print(f.closed)

2. 文件读取模式的选择

r:以读的方式打开,定位到文件开头 , 默认的 mode
- 只能读, 不能写;
- 读取的文件不存在,会报错;

 FileNotFoundError: [Errno 2] No such file or directory: '/etc/passwd1'

r+:以读写的方式打开,定位文件开头 , 可以写入内容到文件
- 可以执行读写操作;
- 文件不存在, 会报错;
- 默认情况下, 从文件指针所在位置开始写入;

w:以写的方式打开,打开文件的时候会清空文件的内容,并且不能读
- write only
- 文件不存在, 不报错
- 会清空文件内容
w+:以读写的方式打开,定位到文件头,并且打开文件的时候也会清空文件的内容
- rw
- 文件不存在, 不报错
- 会清空文件内容
a:以写的方式打开,定位到文件的末尾,是一个追加的操作 , 但并不允许读
- write only
- 文件不存在, 不报错
- 不会清空文件内容
a+:以读写的方式打开,定位到文件的末尾,追加的方式。
- rw
- 文件不存在, 不报错
- 不会清空文件内容

非纯文本文件的读取

如果读取图片, 音乐或者视频(非文本文件), 需要通过二进制的方式进行读取与写入;b
- 读取二进制文件
rb; rb+; wb; wb+; ab; ab+;
- 读取文本文件
rt; rt+; wt; wt+; at; at+; 等价于 r; r+; w; w+; a; a+;

先读取二进制文件内容, 保存在变量content里面

f1 = open("frame1.png", mode='rb')
content = f1.read()
f1.close()
print(content)

f2 = open('hello.png', mode='wb')
f2.write(content)
f2.close()

文件常用属性

缓冲区

f = open('/tmp/passwd')
f.buffer
<_io.BufferedReader name='/etc/passwd'>
bufferObj = f.buffer
from collections import Iterable
isinstance(bufferObj, Iterable)
True
for i in bufferObj:
    print(i)

f.close()
# 当只是读取文件时, buffer里面没有内容
f = open("/tmp/passwd", 'a+')
f.read()
f.write('123')
3
# 此时写入的内容在缓冲区里面,并没有真正写入磁盘文件
f.buffer
<_io.BufferedRandom name='/tmp/passwd'>
for i in f.buffer:
    print(i, end=',')

f.close()
print(f.buffer) # buffer缓冲区对象

文件常用方法

读取文件内容

f = open('/tmp/passwd', 'r+')
f.read():
# 默认情况读取文件的所有内容, 小的文件, 直接用read读取即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值