Python3 File write() 方法
概述
write() 方法用于向文件中写入指定字符串。
在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like object is required, not 'str'。
语法
write() 方法语法如下:
fileObject.write( [ str ])
参数
-
fileObject -- 文件对象,通常通过 open() 函数打开文件后获得。
-
str -- 要写入文件的字符串。
write() 方法将指定的字符串写入文件,写入的位置取决于文件的当前指针位置:
如果文件是以追加模式(
"a"
或"a+"
)打开的,写入的内容会添加到文件末尾。如果文件是以读写模式(
"r+"
或"w+"
)打开的,写入的内容会从当前文件指针的位置开始覆盖原有内容。
返回值
返回的是写入的字符长度。
实例
文件 runoob.txt 的内容如下:
1:www.runoob.com 2:www.runoob.com 3:www.runoob.com 4:www.runoob.com 5:www.runoob.com
以下实例演示了 write() 方法的使用:
实例
#!/usr/bin/python3
# 使用 with 语句打开文件,确保文件正确关闭
with open("runoob.txt", "r+") as fo:
print("文件名: ", fo.name)
# 在文件末尾写入一行
fo.seek(0, 2) # 将文件指针移动到文件末尾
fo.write("6:www.runoob.com\n") # 写入内容并添加换行符
# 读取文件所有内容
fo.seek(0) # 将文件指针移动到文件开头
for index, line in enumerate(fo):
print("文件行号 %d - %s" % (index, line.strip()))
# 使用 with 语句打开文件,确保文件正确关闭
with open("runoob.txt", "r+") as fo:
print("文件名: ", fo.name)
# 在文件末尾写入一行
fo.seek(0, 2) # 将文件指针移动到文件末尾
fo.write("6:www.runoob.com\n") # 写入内容并添加换行符
# 读取文件所有内容
fo.seek(0) # 将文件指针移动到文件开头
for index, line in enumerate(fo):
print("文件行号 %d - %s" % (index, line.strip()))
以上实例输出结果为:
文件行号 0 - 1:www.runoob.com 文件行号 1 - 2:www.runoob.com 文件行号 2 - 3:www.runoob.com 文件行号 3 - 4:www.runoob.com 文件行号 4 - 5:www.runoob.com 文件行号 5 - 6:www.runoob.com
查看文件内容:
$ cat runoob.txt 1:www.runoob.com 2:www.runoob.com 3:www.runoob.com 4:www.runoob.com 5:www.runoob.com 6:www.runoob.com
注意事项
文件模式:
如果文件以只读模式(
"r"
)打开,调用write()
会抛出io.UnsupportedOperation
异常。如果文件以写入模式(
"w"
或"w+"
)打开,文件内容会被清空,然后写入新内容。如果文件以追加模式(
"a"
或"a+"
)打开,写入的内容会添加到文件末尾。
文件指针:
写入操作从当前文件指针的位置开始。如果需要从文件开头或特定位置写入,可以使用
seek()
方法移动文件指针。
换行符:
write()
方法不会自动添加换行符。如果需要换行,必须在字符串中显式添加\n
。
返回值:
write()
方法返回写入的字符数。如果写入失败,可能会抛出异常。
点我分享笔记