接着我们来看a模式。
a模式只是追加写模式,它只能写不能读。
还是老套路,我们来看当文件不存在的时候会发生什么情况。
with open(r'G:\PythonProject\学习\学习文件\date\d.txt', mode='at', encoding='utf-8') as f:
pass
还是写一个不存在的路径。然后运行。
看见左边文件夹里面出现了d.txt。
所以说a模式下文件不存在时会新建一个空白文件,恩建指针也会在开始位置。
如果当文件存在时,文件指针会调到末尾。
现在我在这个文件里写点内容。
然后我先在这个子代码块这里试试f.read()。
with open(r'G:\PythonProject\学习\学习文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.read()
报错了,说不能读。
那继续试试写,用f.write(),然后里面加一个\n。
with open(r'G:\PythonProject\学习\学习文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.write('那么短,还站那么远\n')
运行一下,然后再来看d.txt文件。
我们可以看到,把刚刚的那句话写到最后了。
这正是因为a模式下文件指针会直接跳到最后,所以我们用write写的时候,就是从指针当前位置开始写。
所以我们写的内容就是在最后面了。
现在如果我在这个子到吗块里接着写,就是说在这个文件美观的时候连续写,其实就和w模式下是一样的。
with open(r'G:\PythonProject\学习\学习文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.write('那么短,还站那么远\n')
f.write('那么短,还站那么远\n')
都是接着后面写,来运行看看。
在d.txt文件里面,就又多了两条。
如果我继续运行,就会又多两条‘那么短,还站那么远’。
a模式和w模式的区别就是,a模式每次打开文件,文件指针会跳到最后。
w模式每次打开文件会先清空文件,文件指针再回到开头。
所以w模式我们一般用来写新文件,a模式我们一般给老文件增加内容。
比如日志文件,用户的交易记录什么的。
如果niyongw模式来写用户的交易记录的话,你第一的用户充值之后第二个用户再来充值,然后你前面用户的充值记录就被清空了。
你的文件里永远就只有最后一个用户的充值记录。
未经允许不得转载:445IT之家 » 零基础Python到全栈-a模式