到目前为止, 我们已经学会了如何读取文件, 但是我们有这个恼人的事情与光标,
然后我们不得不关闭文件｡
那我们该怎么解决这个问题？
实际上, 用python执行文件IO的一个更好的方法是使用内置的with语句｡
让我给你们展示一下, 我们要说的是, 而不是之前的｡
打开宽度｡
文件的名称｡
然后说成你想要的任何变量｡
所以我的档案｡
所以现在有了open, 你就可以做这样的事情了, 但是你不必担心close｡
所以大多数时候你都想使用width语句｡
这是在Python中处理文件的正确方法｡
如果我在这里保存然后逃跑｡
我的剧本｡
不知道｡
我得到一个错误, 因为我忘记了列在这里｡
如果我再跑｡
你去那里｡
我得到了我的输出, 并且我不需要关闭我的文件｡
一切都是为我做的｡
这是读取文件的标准方法｡
现在就去
如果我们想写入文件呢？
到目前为止, 我们只读到了, 实际上在open的引擎盖下面有一个默认参数, 叫做mode｡
相等R, 代表读取｡
因此, 使用mode, 我们可以读取文件｡
当我们不指定模式时, 它会自动假设我们阅读｡
但是如果我们想写一个文件, 我们可以简单地写W, 对吗？
所以如果我运行这个｡
您可以看到, 我现在收到一个错误｡
不支持的操作, 不可读, 原因是｡
嗯, 文件只能写｡
所以为了让我读和写我可以写｡
啊, 好吧｡
好吧, 让我们看看｡
不知道｡
事实上不是这样的
你会认为是的｡
RW但这是一个小把戏｡
为了读写｡
我们确实阅读加｡
所以如果我运行这个｡
好吧, 我会的
我阅读和写的时候得到了一个空的列表, 因为这个列表现在是空的｡
所以我们在这里写一个文件｡
让我们把它做小一点这样我们就能看到它更好｡
假设在这个文件中我想要有文本｡
在这篇文章中我会说我的文件点｡
好吧, 我知道了
我想写什么就写什么｡
所以, 让我们说, 嘿, 这是｡
是我
如果我打印文本, 那么现在在这里｡
我负责这个｡
我得到11？
嗯嗯嗯
这算什么｡
十一岁？
好吧, 这不是真的很重要现在｡
我们要关注的是, 嘿, 是我｡
我读了一份文件｡
好吧, 假设我想再次打开文件, 并再次写入｡
比如说, 这一次, 我要写一个笑脸｡
如果我运行这个｡
又回去了｡
好吧, 我会的
看起来像是我写的文件, 但是｡
哦, 我的天
这是我们在向文件写入内容时所希望的吗？
光标将重置｡
还记得我们打开文件的时候吗？
光标将移到零｡
我们直接去看文件｡
如果里面已经有东西了, 我们会覆盖它, 所以我们要小心｡
顺便说一下, 这个文本文件显示我们写了两个字符, 笑脸｡
好吧, 我会的
那我们该怎么解决这个问题？
我们怎样才能确保我们不打破我们以前拥有的东西？
就是, 嘿, 是我, 我想在结尾加个笑脸｡
我们可以使用附加模式｡
附加模式是, 这会附加至档案的结尾｡
如果我运行这个表情, 嘿, 这是我与一个笑脸, 它附加到最后｡
这就是追加模式｡
同样, 我们可以用w来写｡
如果我运行这个｡
它会添加一个笑脸｡
现在, 它为什么不像上次那样, 覆盖现有的东西？
因为我们的模式｡
W允许我们写入文件｡
以前我们读书写字的时候｡
我们看了文件｡
我们再来一遍｡
其实, 我们还是回到｡
嘿, 我还是原来的我｡
如果我再运行一次｡
因为我们确实读书写字｡
光标被设置为零并覆盖了它, 而不是我们刚刚做了正确的｡
它会假设这是一个新文件, 我们只想添加笑脸｡
如果我在这里单击运行, 你看到了吗？
现在只剩笑脸了｡
所以你要小心, 你要根据你的需要使用正确的模式｡
现在, 假设我们要创建一个不存在的文件｡
让我们有一个文件名为快乐短信｡
或者｡
不, 我们就这么办吧｡
而这写着一张悲伤的脸｡
但请记住, 我们的桌面上没有这个｡
如果我清除此选项并查看桌面, 则没有设置文本｡
如果我在这里做阅读加｡
所以读和写, 我运行这个｡
我收到找不到文件错误｡
如果我在这里做一个右, 然后运行这个｡
好吧, 我会的
看起来成功了｡
如果我看文件, 我现在有一个悲伤的文本｡
所以现在如果我打开它｡
我有它坐在面对文字｡
因此, 如果文件不存在, write也会创建一个新文件, 或者覆盖现有文件｡
所以你要再次小心使用模式, 不管你是要追加, 还是要读,
还是要读和写｡
但大多数时候最常见的是读､ 写和追加｡
现在, 在下一个视频中, 我想谈谈文件的概念｡
我现在已经写了文本文件, 但我们可以写任何东西｡
如果我想的话, 我们可以做一个点py文件｡
但是, 如果访问位于不同位置（如文件夹内）的文件呢？
我们将在下一个视频中探讨这个主题｡