让我们来谈谈文件i o｡
我什么意思？
你会在编程中经常看到这种情况｡
IO代表输入输出｡
你看, 大多数时候, 机器并不是只在一个环境中进行通信｡
例如, 到目前为止, 我们一直在写我们的代码, 让我们说, 一个编辑器, 像崇高的文本,
我在这里, 或Pi魅力或一个在线涟漪｡
但通常您希望与系统的不同部分进行交互｡
也许你想和另一个网站说话, 也许你想和你桌面上的东西说话, 也许是一个文件,
也许是两台不同的机器在互相通信｡
也许你在和数据库说话｡
IO的意思是, 嘿, 我想让你从外部世界输入一些东西, 并向外部世界输出一些东西｡
我们使用IO之类的东西最常见的方式之一是通过阅读文件｡
你可能会想到Python, 如果我们可以写一个脚本,
在需要IO的时候压缩图像, 然后我需要输入一个图像, 然后我需要输出压缩后的图像, 那该有多好｡
形象｡
也许我想使用PDF文件, 也许在我所有的pdf页面上添加水印｡
然后我们输入一个PDF并输出一个新版本的PDF｡
所以这是一个非常常见的任务, 我们看到了很多｡
而读写文件是我们工具带中非常重要的工具｡
顺便说一句, 我们有一个项目, 我们实际上是要使用这个与PDF｡
但是现在, 我们如何用Python完成这个文件的输入输出呢？
Python有一个内置函数, 允许我们打开和写入两个文件｡
简单地说就是开放､ 舒适和轻松｡
所以使用open, 我们可以做这样的事情｡
我可以在我们的桌面上创建一个示例文本文件, 所以我将在这里使用我的终端｡
因此, 如果我们看一下目前的工作目录｡
我在台式机上｡
如果您使用的是Windows, 则可能需要在此处执行一些不同的命令｡
但是到现在为止, 您应该已经非常熟悉了, 如果需要, 您可以创建一个文件｡
现在我可以手动或在我的终端中完成此操作｡
我能做的｡
如果你用的是mac, 你可以直接触摸, 然后我会说测试点文本｡
所以如果我在这里做了, 你会看到我有一个测试文本文件和一个脚本点py文件｡
再一次, 再次检查我是否进入桌面｡
是的｡
我这里有两个｡
好极了｡
现在在这里, 我们可以简单地说在我们的脚本文件中｡
打开门
和文件名｡
在我们的例子中, 它是测试｡
确保是字符串测试, 点文本｡
就像那样｡
现在, 我可以将它赋给一个变量, 称之为我的文件｡
现在我们有了file对象｡
让我们来看看这个｡
如果我在这里做了, 打印我的文件｡
看看会发生什么｡
我要运行我的代码｡
比如说python 3, 然后运行脚本. py｡
好吧, 我会的
我得到了一个对象, 一个纺织品包装, 我得到了名称, 这是文本, 我得到了模式, 我还不确定它是什么｡
我们将学习编码, 这是这个文件的编码方式, 是UTF 8｡
大多数文件通常以UTF 8编码｡
好吧, 那我怎么才能真正读这个文件呢？
我们只要我的文件上有个点就行了｡
如果我现在运行这个｡
我得到了一个空白区域, 因为这个测试文本文件中没有任何内容｡
那我们写点东西吧｡
我会打开这个文件, 升华文本, 然后写下来｡
嗨, 我叫安德烈｡
现在, 我真的, 真的很有创意｡
干得漂亮｡
好吧, 我们回去｡
所以现在如果我读这个文件｡
你看那个｡
我能阅读｡
嗨, 我叫安德烈｡
现在你又来了｡
我看过我的档案了｡
慢慢来｡
现在, 如果我再运行一次, 我们就｡
多读几遍｡
如果我单击“运行”｡
嗯嗯嗯
第一次我还能读, 但这两次我什么也阅读不了｡
为什么会这样呢？
这个open函数有一个游标的概念｡
也就是说, 您只能读取档案一次｡
一旦打开, 它将返回一个文件对象｡
和文件的内容可以读取｡
文件的内容是红色的, 带有光标, 就像你在这里看到的一样, 一个接一个地打印到屏幕上｡
但在第一次阅读结束时, 光标将位于文件的末尾｡
所以现在当它试图读取时, 它将是文件的结尾, 那里将不会留下任何东西｡
所以我们解决这个问题的方法就是这样做｡
我们只需输入my file. C, 它会将光标移动到我们想要的任何索引｡
在我们的例子中, 寻找零｡
如果我现在运行这个程序, 就可以了｡
如果我把光标移回去｡
我保存并运行这个｡
好吧, 我会的
现在好多了｡
这只是为了演示Python使用游标的概念来读取文件｡
现在我能做的另一件独特的事情是读行｡
所以如果我运行这个｡
它读取行, 但假设我们的文本文件有不同的行｡
你好吗？
我们在这里画个笑脸吧｡
如果我现在读这行字｡
再来一次｡
你好, 我是
我叫安德烈｡
如果我再读一遍那行字｡
你好, 我是
我叫安德烈, 因为每句台词我都懂｡
如果我多次打印, 我只会得到第一行｡
我负责这个｡
好了, 好多了｡
我明白了｡
你好, 我叫安德烈·笑脸.
你好吗？
再次, 光标保持移动｡
好吧, 这样我就可以继续阅读台词了｡
另一件事, 我可以做的是, 只是说, 阅读行, 如果我运行这个｡
我得到了一个包含整个文件的列表, 读取了所有行, 你可以看到这里｡
嗨, 我叫安德烈·纳吉｡
我这里有一个新的系列｡
一个笑脸, 一句新台词｡
记住, 这是转义序列｡
然后你怎么样, 这里没有新的线路吗？
因为没有新台词｡
这是文件的结尾
所以这些都非常有用｡
也许我们可以使用正则表达式来搜索文件中的一段文本｡
这很有用吧？
现在我们要做的最后一件事, 这有点烦人, 所以我会告诉你, 我们以后怎么不需要这样做｡
但实际上, 在使用open打开文件后, 您必须手动关闭该文件｡
所以你可以在程序的其他地方使用它｡
这只是一个很好的标准｡
所以你要做的就是说我的文件在你处理完之后就关闭了｡
你告诉你的电脑｡
嘿, 你好
你得停下手头的事｡
我对那份文件不感兴趣了｡
我们已经结束了｡
你可以在别的地方用｡
所以通常我们这样做, 我们都完成了｡
让我们休息一下, 在下一个视频中了解更多信息｡