笔记带有个人侧重点,不追求面面俱到。
出处: 菜鸟教程 - Python3 File(文件) 方法
部分内容可以参考上一章节:菜鸟教程《Python 3 教程》笔记(17):输入和输出
open()
方法用于打开一个文件,并返回文件对象。在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError
。
使用
open()
方法一定要保证关闭文件对象,即调用close()
方法。
语法:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数:
描述:
flush()
方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush()
方法。
实例:
f = open("runoob.txt", "wb")
f.flush()
f.close()
描述:
fileno()
方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作。
返回值:
返回文件描述符。
实例:
>>> f = open("runoob.txt", "wb")
>>> f.fileno()
3
>>> f.close()
描述:
isatty()
方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False。
返回值:
如果连接到一个终端设备返回 True,否则返回 False。
实例:
>>> f = open("runoob.txt", "wb")
>>> f.isatty()
False
>>> f.close()
描述:
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
描述:
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()
描述:
writelines()
方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符 \n
。
语法:
fileObject.writelines(seq)
参数:
实例:
>>> f = open("runoob.txt", "w")
>>> f.writelines(["1","2","3\n","4"])
>>> f.close()
处理后,文件 runoob.txt 的内容:
123
4