通过w的打开方式打开文件,会清空文件的内容,这在很多场景下是不合适的,比如写系统日志的时候,需要累积随时间推移的所有数据。
Python提供文件追加内容的打开模式,可以往文件尾部添加内容,又不清空文件原有的内容。
模式 |
描述 |
a |
打开一个文件并追加内容,会往文件尾部添加内容 |
ab |
以二进制格式打开一个文件并追加内容,会往文件尾部添加内容 |
a+ |
打开一个文件并使用追加进行读写 |
f = open('test.txt', 'a') f.write('Hello Everyone\n') f.close()
使用a的打开方式打开文件,文件游标默认是在文件的尾部,因此,可以便捷的往文件尾部添加内容,除此以外,文件对象还提供seek()方法,可以移动文件的游标位置,它接受一个参数,表示文件的位置,0:文件首部,1:当前位置,2:文件尾部,通过seek()可以把文件游标移动到文件首部但不删除文件的内容。
f = open('test.txt', 'a+') content = f.readlines() print(content) # ==> [] f.seek(0) content = f.readlines() print(content) # ==> ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']
第一次print(content)的时候,由于文件游标在文件的尾部,所以readlines()读取不到任何数据,打印了空的结果,第二次print(content)的时候,由于通过seek(0),文件游标移动到了文件的首部,因此readlines()就返回了文件所有的内容。
假设test.txt文件有以下内容:
Hello World Hello Python Hello Imooc
请将文件的内容重复写一份追加到文件的尾部。
请同学在本地编写代码练习
参考答案:
f = open('test.txt', 'a+') f.seek(0) content = f.readlines() f.seek(2) for line in content: f.write(line) f.close()
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报