python(File)方法二:python写文件write和writelines方法
python写文件 write和writelines方法介绍
write()方法
Python 中的文件对象提供了 write() 函数,可以向文件中写入指定内容。该函数的语法格式如下:
file.write(string)
其中,file 表示已经打开的文件对象;string 表示要写入文件的字符串(或字节串,仅适用写入二进制文件中)。
注意,在使用 write() 向文件中写入数据,需保证使用 open() 函数是以 r+、w、w+、a 或 a+ 的模式打开文件,否则执行 write() 函数会抛出 io.UnsupportedOperation 错误。
比如abc.txt文件内容如下:
IT懒猫社区网址是
https://www.catroom.com.cn/
再往abc.txt文件写入内容:
f = open("abc.txt", 'w')
f.write("写入一行测试内容")
f.close()
如果打开文件模式中包含 w(写入),那么向文件中写入内容时,会先清空原文件中的内容,然后再写入新的内容。因此运行上面程序,再次打开 abc.txt 文件,只会看到新写入的内容:
写入一行测试内容
正确的追加内容方式应该是:
f = open("abc.txt", 'a')
f.write("\n写入一行测试内容")
f.close()
文件内容:
IT懒猫社区网址是
https://www.catroom.com.cn/
写入一行测试内容
除此之外,如果向文件写入数据后,不想马上关闭文件,也可以调用文件对象提供的 flush() 函数,它可以实现将缓冲区的数据写入文件中。例如:
f = open("abc.txt", 'w')
f.write("写入一行新数据")
f.flush()
writelines()方法
Python 的文件对象中,不仅提供了 write() 函数,还提供了 writelines() 函数,可以实现将字符串列表写入文件中。
注意,写入函数只有 write() 和 writelines() 函数,而没有名为 writeline 的函数。
例如,还是以 abc.txt 文件为例,通过使用 writelines() 函数,可以轻松实现将 abc.txt 文件中的数据复制到其它文件中,实现代码如下:
f = open('abc.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())
n.close()
f.close()
执行此代码,在 abc.txt 文件同级目录下会生成一个 b.txt 文件,且该文件中包含的数据和 abc.txt 完全一样。
需要注意的是,使用 writelines() 函数向文件中写入多行数据时,不会自动给各行添加换行符。上面例子中,之所以 b.txt 文件中会逐行显示数据,是因为 readlines() 函数在读取各行数据时,读入了行尾的换行符。