7.1.3 文件的写入

文件写入的实现同样具有多种方法,可以使用write()、writelines()方法写入文件。7.1.1小节使用了write()方法把字符串写入文件,writelines()方法可以把列表中存储的内容写入文件。下面这段代码演示了如何将列表中的元素写入文件。


01     # 使用writelines()写文件
02     f = open("hello.txt", "w+")
03     li = ["hello world\n", "hello China\n"]
04     f.writelines(li)
05     f.close()

【代码说明】

·第2行代码使用“w+”的模式创建并打开文件hello.txt。

·第3行代码定义了1个列表li。li中存储了2个元素,每个元素代表文件中的1行,“\n”用于换行。

·第4行代码调用writelines(),把列表li的内容写入文件中。文件中的内容如下所示。


hello world
hello China

上述两个方法在写入前会清除文件中原有的内容,再重新写入新的内容,相当于“覆盖”的方式。如果需要保留文件中原有的内容,只是追加新的内容,可以使用模式“a+”打开文件。下面这段代码演示了文件的追加操作。


01     # 追加新的内容到文件
02     f = open("hello.txt", "a+")         # 写入方式为追加a+
03     new_context = "goodbye"
04     f.write(new_context)
05     f.close()

【代码说明】

·第2行代码使用模式“a+”打开文件hello.txt。

·第4行代码调用write()方法,hello.txt文件的原有内容保持不变,把变量new_context的内容写入hello.txt文件的末尾。此时hello.txt中的内容如下所示。


hello world
hello China
goodbye

使用writelines()写文件的速度更快。如果需要写入文件的字符串非常多,可以使用writelines()提高效率。如果只需要写入少量的字符串,直接使用write()即可。