自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
在实例01中,虽然创建并打开一个文件,但是该文件中并没有任何内容,它的大小是0KB。Python的文件对象提供了write()方法,可以向文件中写入内容。write()方法的语法格式如下:
file.write(string)
其中,file为打开的文件对象;string为要写入的字符串。
注意:在调用write()方法向文件中写入内容的前提是在打开文件时,指定的打开模式为w(可写)或者a(追加),否则,将抛出如图7所示的异常。
图7 没有写入权限时抛出的异常
场景模拟:在蚂蚁庄园的动态栏目中记录着庄园里的新鲜事。在给小鸡喂食后,使用了一张加速卡,此时,需要向庄园的动态栏目中写入一条动态。
实例02 向蚂蚁庄园的动态文件写入一条信息
在IDLE中创建一个名称为antmanor_message_w.py的文件,然后在该文件中,首先应用open()函数以写方式打开一个文件,然后再调用write()方法向该文件中写入一条动态信息,再调用close()方法关闭文件,代码如下:
print("\n","="*10,"蚂蚁庄园动态","="*10)
file = open('message.txt','w') # 创建或打开保存蚂蚁庄园动态信息的文件
# 写入一条动态信息
file.write("你使用了1张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快。\n")
print("\n 写入了一条动态……\n")
file.close() # 关闭文件对象
执行上面的代码,将显示如图8所示的结果,同时在antmaner_message_w.py文件所在的目录下创建一个名称为message.txt的文件,并且在该文件中写入了文字“你使用了1张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快”,如图9所示。
图8 创建并打开记录蚂蚁庄园动态的文件
图9 打开记录蚂蚁庄园动态的文件
注意:在写入文件后,一定要调用close()方法关闭文件,否则写入的内容不会保存到文件中。这是因为当我们在写入文件内容时,操作系统不会立刻把数据写入磁盘,而是先缓存起来,只有调用close()方法时,操作系统才会保证把没有写入的数据全部写入磁盘。
多学两招:在向文件中写入内容后,如果不想马上关闭文件,也可以调用文件对象提供的flush()方法,把缓冲区的内容写入文件,这样也能保证数据全部写入磁盘。
向文件中写入内容时,如果打开文件采用w(写入)模式,则先清空原文件中的内容,再写入新的内容;而如果打开文件采用a(追加)模式,则不覆盖原有文件的内容,只是在文件的结尾处增加新的内容。下面将对实例02的代码进行修改,实现在原动态信息的基础上再添加一条动态信息。修改后的代码如下:
print("\n","="*10,"蚂蚁庄园动态","="*10)
file = open('message.txt','a') # 创建或打开保存蚂蚁庄园动态信息的文件
# 追加一条动态信息
file.write("mingri的小鸡在你的庄园待了22分钟,吃了6g饲料之后,被你赶走了。\n")
print("\n 追加了一条动态……\n")
file.close() # 关闭文件对象
执行上面的代码后,打开message.txt文件,将显示如图10所示的结果。
图10 追加内容后的message.txt文件
多学两招:在Python的文件对象中除了提供了write()方法,还提供了writelines()方法,可以实现把字符串列表写入文件,但是不添加换行符。