Python tempfile模块

2025年1月5日 | 阅读6分钟

引言

在本教程中,我们将学习 Python 的 tempfile 模块。tempfile 模块是标准库中的一部分,它定义了创建临时文件和目录的函数。这些文件和目录创建在操作系统文件系统定义的特殊临时目录中。Tempfile 是一个 Python 模块,当我们处理大量数据、修改或访问文件中的数据,并以数据处理结果的形式提供输出数据时,会用到它。一旦程序完成,在程序执行期间创建的任何输出文件就不再需要了。在这种情况下,会产生大量输出文件的问题,这些文件会用不必要的数据填满文件系统,而这些数据必须在每次程序运行时删除。

临时文件

临时文件还可以用于保护敏感数据。该模块包含许多用于创建和轻松访问临时文件和文件夹的功能。

在 Python 中创建临时文件

假设您的应用程序需要一个临时文件供程序使用。例如,它会创建一个文件,用它来存储一些数据,并在使用后删除它。我们可以为此使用 TemporaryFile() 函数,并在临时目录中创建一个临时文件,并返回一个类似于内置 open() 函数的对象。文件默认以 wb+ 模式打开。这意味着它可以同时用于在内部进行读/写二进制数据。重要的是,进入临时文件夹的文件在文件关闭时会被删除。

程序代码

这里,我们提供了一个 Python 中 TemporaryFile() 函数的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

temp_file: <_io.BufferedRandom name=3>
temp_file.name: 3

在 Python 的临时文件中读写文本

这与从文件读写类似,我们也可以使用相同的函数调用从临时文件中执行此操作。

  1. 这里,我们首先创建一个临时文件,然后向其中写入一些数据。
  2. 写入后,您需要使用文件句柄的 rewind seek() 函数从其中读回数据。
  3. 然后,回到开头,从文件中读取。
  4. 最后,关闭文件,它就会被删除。

程序代码

这里,我们提供了一个在 Python 的临时文件中读写文本的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

b'Hello coders'

程序代码

这里,我们提供了一个在 Python 的临时文件中读写文本的另一个程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

b'Hello, welcome to javatpoint'

在 Python 中创建命名临时文件

如果您的应用程序跨越多个进程甚至多个主机,那么命名文件是传输应用程序各部分之间数据最简单的方法。Python 中的 NamedTemporaryFile() 函数用于创建一个可以通过 name 属性访问的文件。

  1. 首先导入临时文件,然后使用 NamedTemporaryFile() 函数创建文件。
  2. NamedTemporaryFile 返回类似文件的对象,可用作临时存储。但与 TemporaryFile 不同的是,使用 NamedTemporaryFile 创建的文件保证有一个可见的名称。
  3. TemporaryFile 将在文件关闭时被销毁。

程序代码

这里,我们提供了一个在 Python 中创建命名临时文件的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

Here we creating a named temporary file:
The created temporary file is: <tempfile._TemporaryFileWrapper object at 0x79a6beb8cd90>
The name of the file is: /tmp/tmp686iailo

程序代码

这里,我们提供了一个在 Python 中创建命名临时文件的另一个程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

The name of the file is: /tmp/tmpujbmjvmj

在 Python 中为文件名提供前缀和后缀

有时,我们需要不时地为文件名添加前缀或后缀。这将帮助我们分析程序生成的所有临时数据。我们可以使用“suffix”和“prefix”参数为临时文件的名称添加后缀或前缀。使用上面列出的相同的 NamedTemporaryFile 函数。我们只需要在调用此函数时添加两个附加参数,即 suffix 和 prefix。因此,如果我们向 NamedTemporaryFile() 函数传递两个参数,suffix 和 prefix,它会自动将它们添加到命名文件的开头和结尾。

程序代码

这里,我们提供了一个在 Python 中为文件名提供前缀和后缀的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

The created temporary file is: <tempfile._TemporaryFileWrapper object at 0x7a5e15711050>
The file name is: /tmp/helloPrefix_w2bktgsg_helloSuffix

程序代码

这里,我们提供了一个在 Python 中为文件名提供前缀和后缀的另一个程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

The temporary file name is:  /tmp/Welcome to_v7s00hkp_javatpoint

在 Python 中创建临时目录

TemporaryDirectory() 函数创建一个临时列表。dir 参数允许您指定此目录的位置。

程序代码

这里,我们提供了一个在 Python 中创建临时目录的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

'C:/python3/tmppxk4amyw'

mkstemp() 函数

此函数也创建一个临时文件,类似于 TemporaryFile()。此外,可以不时地为创建的文件添加后缀和前缀。与 TemporaryFile() 不同,创建的文件不会被删除。它必须手动删除。

输出

现在,我们运行上述代码并从中找到输出。输出如下:

C:\Users\Data\Local\Temp\ tmppxk4amyw.t

mkdtemp() 函数

mkdtemp() 函数还在操作系统临时文件夹中创建一个临时目录,并返回其绝对路径名。使用 dir 参数可以清楚地定义它的创建位置。该文件夹不会被删除。

输出

现在,我们运行上述代码并从中找到输出。输出如下:

'C:/hello/tmppxk4amyw'

结论

在本教程中,我们学习了 Python 的 tempfile 模块。临时文件也用于保护敏感数据。在这里,我们学习了如何创建临时文件,读写文件等。