菜鸟教程《Python 3 教程》笔记(18):File(文件)方法

笔记带有个人侧重点,不追求面面俱到。

18 File(文件)方法

出处: 菜鸟教程 - Python3 File(文件) 方法

部分内容可以参考上一章节:菜鸟教程《Python 3 教程》笔记(17):输入和输出

18.1 open() 方法

open() 方法用于打开一个文件,并返回文件对象。在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError

使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

语法:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数:

  • file: 必需,文件路径(相对或者绝对路径);
  • mode: 可选,文件打开模式;
  • buffering: 设置缓冲;
  • encoding: 一般使用utf8;
  • errors: 报错级别;
  • newline: 区分换行符;
  • closefd: 传入的file参数类型;
  • opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

18.2 file 对象

18.2.1 flush()

描述:

flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要被动的等待输出缓冲区写入。

一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

实例:

f = open("runoob.txt", "wb")
f.flush()
f.close()

18.2.2 fileno()

描述:

fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作。

返回值:

返回文件描述符。

实例:

>>> f = open("runoob.txt", "wb")
>>> f.fileno()
3
>>> f.close()

18.2.3 isatty()

描述:

isatty() 方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False。

返回值:

如果连接到一个终端设备返回 True,否则返回 False。

实例:

>>> f = open("runoob.txt", "wb")
>>> f.isatty()
False
>>> f.close()

18.2.4 truncate()

描述:

truncate() 方法用于从文件的首行首字节开始截断,截断文件为 size 个字节,无 size 表示从当前位置截断至末尾;截断之后,后面的所有字节被删除,其中,Widnows 系统下的换行代表2个字节大小。

语法:

fileObject.truncate([size])

实例:

文件 runoob.txt 的内容:

1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com

操作:

# python 3.10.8
>>> f = open("runoob.txt", "r+")
>>> f.truncate(30)
30
>>> f.read()
'1:www.runoob.com\n2:www.runoob'
>>> f.close()

处理后,文件 runoob.txt 的内容:

1:www.runoob.com
2:www.runoob

18.2.5 write()

描述:

write() 方法用于向文件中写入指定字符串。

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时在文件中是看不到写入的内容的。

如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like object is required, not 'str'

语法:

fileObject.write(str)

返回值:

返回的是写入的字符长度。

实例:

>>> f = open("runoob.txt", "r+")
>>> f.write("runoob")
6
>>> f.flush()
>>> f.close()

18.2.6 writelines()

描述:

writelines() 方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符 \n

语法:

fileObject.writelines(seq)

参数:

  • seq – 要写入文件的字符串序列。

实例:

>>> f = open("runoob.txt", "w")
>>> f.writelines(["1","2","3\n","4"])
>>> f.close()

处理后,文件 runoob.txt 的内容:

123
4
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎猫骑巨兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值