前文
最近不是出了一个30天的Python教程,有很多人私信我说没有资料怎么跟着学习,现在他来了https://www.bilibili.com/read/cv9383238
今天,我探讨了如何使用Python处理文件并与文件进行通信。这些天来,我一直在探索和分享各种Python概念以及一些使用Python编程的最佳实践。但是,我们尚未在Python之外与外界进行交互。我们的程序经常出于各种原因需要与外部世界进行通信,例如从excel,CSV或pdf文件中读取数据,转换和压缩图像,从文本文件中提取数据,从数据库中读取数据以及无数其他内容。与外部世界的交互是通过I / O或输入输出操作完成的。
文件可帮助我们将数据永久存储到系统中。当我们编写任何程序来管理某些数据时,数据会临时存储在计算机的RAM中,并且在计算机关闭时会被擦除。要永久存储数据,需要将它们存储在某种数据库或某些文件系统中,以便以后使用时可以对其进行访问。
可以根据文件的内容将文件大致分为以下两种类型:二进制(也称为富文本)
文本
Python提供了一个内置函数open来打开任何文件。首先需要打开任何文件才能从文件中读取数据或向其中写入一些数据。在Python中,从文件读取数据很简单。
我使用REPL作为游乐场来尝试本文提供的所有代码块。
开启档案
我创建了一个test.txt包含一些虚拟内容的文件以进行测试。
test.txt
现在可以像这样使用Python读取此文件的内容。
main.py
我们还可以在open函数中打开文件时指定模式。默认情况下,该模式为“ r”或读取模式。我们还可以指定是否需要以文本或二进制模式打开文件。
我们还可以在打开文件时指定编码格式。默认格式为utf-8
关闭档案
对文件执行操作后关闭文件非常重要,因为它将释放与文件关联的内存空间。
main.py
上面的块可以放在try-except finally块内。这样可以确保在执行操作时如果出现任何错误,文件将被关闭。
main.py
Python提供了更好的语法,可以使用该with语句在文件上打开执行操作。一旦执行该操作,它将自动关闭文件。
main.py
写入文件
Python提供write了将数据写入文件的方法。需要使用w模式打开文件以写入文件。要注意的是,使用该w模式会覆盖文件的内容。如果需要附加内容,则a可以使用该模式。如果文件不存在,则在向其写入数据之前创建文件。
main.py
main.py
另一种写writelines方法是使用方法。可以提供项目列表。
main.py
从文件读取
Python提供了许多从文件读取的方法。需要使用“ r”模式打开文件。如果我们必须一起执行读写操作,那么它也是一种“ r +”模式。该read方法接受一个size参数,该参数基本上是它将要读取的字符计数。如果未提供大小,则它将读取整个文件。
main.py
有一种tell方法可以提供当前正在读取的文件中的光标所在的位置。
该seek方法用于将光标移到文件中的特定位置。
main.py
另外,Python提供了另外两种方法,readline并且readlines.
readline 读取文件,直到到达换行符(\ n)。
readlines 返回行列表
Python文件方法
这是Python中可用的文件方法的完整列表
实践
我们尝试构建一个翻译程序,该程序可以读取英语内容的文件,并使用其他语言创建该文件的新翻译版本。
在本练习中,我们将使用来自PyPI的外部Python包Translate。借助此软件包,我们可以进行离线翻译!
首先,需要安装此软件包。由于我正在使用REPL,因此将其添加到REPL的“包”部分。pip如果使用本地项目,则可以在终端中使用进行安装。
将创建一个名为的文件quote.txt,并用鼓舞人心的报价填充它:
quote.txt
现在让我们生成此报价的两个翻译版本。一个以西班牙语命名quote-es.txt,带有文件名,另一个以法语命名,带有文件名quote-fr.txt
main.py
这将生成两个翻译后的文件,报价自动翻译。
内置模块处理文件
Python提供了一个内置模块,作为其标准库(称为)的一部分pathlib。它提供了各种方便的类,这些类使用适合不同操作系统的语义来表示文件系统路径。v3.4中引入了此模块。处理大量目录时使用此软件包是有益的。
pathlib在将来的几天中,在构建项目时将明确使用模块。
我是不吐不快的编程君
关注我,带你走进编程的世界
有任何不懂问题可以私信我