Python文件处理2025年11月11日 | 阅读 23 分钟 引言在本教程中,我们将讨论 Python 文件处理。Python 支持文件处理过程。到目前为止,我们一直从控制台读取输入并将其写回控制台与用户进行交互。用户可以轻松地在 Python 中处理文件,例如读取和写入文件。在其他编程语言中,文件处理过程冗长而复杂。但我们知道 Python 是一种易于学习的编程语言。因此,与其他事物一样,Python 中的文件处理也非常轻松且简短。 有时,仅在控制台上显示数据是不够的。要显示的数据可能非常大,并且控制台只能显示有限的数据,因为内存是易失性的,不可能一遍又一遍地恢复程序生成的数据。 当需要将数据永久存储到文件中时,文件处理起着重要作用。文件是磁盘上用于存储相关信息的命名位置。程序终止后,我们可以访问存储的信息(非易失性)。 在 Python 中,文件被视为文本或二进制两种模式。文件可以是文本格式或二进制格式,文件中的每一行都以特殊字符(如逗号 (,) 或换行符)结束。Python 逐行执行代码。因此,它会处理一行,然后请求解释器开始新的一行。这是 Python 中的一个连续过程。 因此,文件操作可以按以下顺序完成。
打开文件文件操作以文件打开开始。首先,打开文件,然后 Python 将开始操作。文件打开是通过 Python 中的 `open()` 函数完成的。此函数接受两个参数:文件名和文件访问模式。当使用 `open()` 函数时,我们必须指定文件打开的模式。该函数返回一个文件对象,可用于执行读取、写入等各种操作。 语法 Python 中打开文件的语法如下: 可以使用多种模式访问文件,例如读取、写入或追加。以下是打开文件的访问模式的详细信息。
让我们看一个简单的例子,以读取模式打开名为 "file.txt"(存储在同一目录中)的文件,并在控制台上打印其内容。 读取模式的程序代码 这是 Python 中的读取操作。我们使用给定的代码打开现有文件,然后读取它。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: <class '_io.TextIOWrapper'> file is opened successfully 在上面的代码中,我们将 `filename` 作为第一个参数传递,并将文件以读取模式打开,因为我们将 `r` 作为第二个参数。`fileptr` 保存文件对象,如果文件成功打开,它将执行打印语句。 写入模式的程序代码 这是 Python 中的写入操作。我们使用给定的代码打开现有文件,然后对其进行写入。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: `close()` 方法close 方法用于终止程序。一旦在文件上完成所有操作,我们必须使用 Python 脚本通过 `close()` 方法将其关闭。一旦在文件对象上调用 `close()` 方法,任何未写入的信息都会被销毁。 我们可以使用文件系统对 Python 中当前打开的文件执行任何外部操作,因此在完成所有操作后关闭文件是一种良好的做法。过早使用 `close()` 方法可能会导致您想写入文件的某些信息被销毁。 `close()` 方法的语法如下。 语法 Python 中关闭文件的语法如下: 请看以下示例。 关闭方法的程序代码 在这里,我们编写关闭方法的 Python 程序代码。代码如下: 关闭文件后,我们无法对文件执行任何操作。文件需要正确关闭。如果在执行文件中的某些操作时发生任何异常,程序将在不关闭文件的情况下终止。 我们应该使用以下方法来克服这类问题。 `with` 语句`with` 语句是在 Python 2.5 中引入的。`with` 语句在处理文件时很有用。它用于需要在一对语句之间执行代码块的场景。 语法 Python 中文件 `with` 语句的语法如下: `with` 语句的优点是,无论嵌套块如何退出,它都保证关闭文件。 在文件的情况下,始终建议使用 `with` 语句,因为如果嵌套代码块中发生 `break`、`return` 或异常,它会自动关闭文件,我们无需编写 `close()` 函数。它不会让文件损坏。 `with` 语句的程序代码 1 在这里,我们编写 `with` 语句的 Python 程序代码。代码如下: `with` 语句的程序代码 2 在这里,我们编写 `with` 语句的 Python 程序代码。代码如下: 写入文件要将一些文本写入文件,我们需要使用 `open` 方法打开文件,然后我们可以使用 `write` 方法在此文件中进行写入。如果我们想打开一个不存在于我们系统中的文件,它会创建一个新文件。另一方面,如果文件存在,则会擦除旧内容并将新内容添加到此文件中。这是通过以下访问模式完成的。 w: 如果文件存在,它将覆盖该文件。文件指针位于文件开头。 a: 它将追加到现有文件。文件指针位于文件末尾。如果不存在文件,则创建一个新文件。 写入方法的程序代码 1 在这里,我们编写写入方法的 Python 程序代码。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: File2.txt Python is the modern programming language. It is done any kind of program in shortest way. 我们以 `w` 模式打开了文件。`file1.txt` 文件不存在,它创建了一个新文件,我们使用 `write()` 函数将内容写入文件。 写入方法的程序代码 2 在这里,我们编写写入方法的 Python 程序代码。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Hello coders Welcome to javaTpoint 写入方法的程序代码 3 在这里,我们编写写入方法的 Python 程序代码。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Python is the modern day language. It makes things so simple. It is the fastest growing language Python has an easy syntax and user-friendly interaction. `file2.txt` 文件的快照 ![]() 我们可以看到文件的内容已修改。我们以 `a` 模式打开了文件,它追加了内容到现有的 `file2.txt` 中。 要使用 Python 脚本读取文件,Python 提供了 `read()` 方法。`read()` 方法从文件中读取一个字符串。它可以以文本格式和二进制格式读取数据。 语法 Python 中文件 `read()` 方法的语法如下: 在这里,`count` 是从文件开头开始要从文件中读取的字节数。如果未指定 `count`,则它可能会一直读取文件内容直到文件末尾。 `read()` 方法的程序代码 在这里,我们编写 `read()` 方法的 Python 程序代码。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: <class 'str'> Python is 在上面的代码中,我们使用 `read()` 函数读取了 `file2.txt` 的内容。我们将 `count` 值设置为十,这意味着它将读取文件的前十个字符。 如果我们使用以下行,它将打印文件的所有内容。因此,它只打印“Python is”。要读取整个文件内容,代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Python is the modern-day language. It makes things so simple. It is the fastest-growing programming language Python has easy an syntax and user-friendly interaction. 通过 for 循环读取文件我们可以在打开文件时使用 `read()` 方法。`read` 方法也可以通过 for 循环完成。我们可以使用 for 循环读取文件。考虑以下示例。 使用 for 循环读取文件的程序代码 1 在这里,我们给出了使用 for 循环读取文件的示例。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Python is the modern day language. It makes things so simple. Python has easy syntax and user-friendly interaction. 使用 for 循环读取文件的程序代码 2 在这里,我们给出了使用 for 循环读取文件的示例。代码如下: 输出 Line1: H Line2: e Line3: l Line4: l Line5: o Line6: Line7: C Line8: o Line9: d Line10: e Line11: r Line12: s Line13: Line14: J Line15: a Line16: v Line17: a Line18: T Line19: p Line20: o Line21: i Line22: n Line23: t Line24: 读取文件的行Python 可以通过使用 `readline()` 方法逐行读取文件。`readline()` 方法从开头读取文件的行,即,如果我们使用 `readline()` 方法两次,我们可以获得文件的前两行。 考虑以下包含 `readline()` 函数的示例,该函数读取我们包含三行的文件 `"file2.txt"` 的第一行。考虑以下示例。 在这里,我们给出了在 Python 中使用 `readline()` 函数读取行的示例。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Python is the modern day language. It makes things so simple. 我们调用了两次 `readline()` 函数,因此它从文件中读取了两行。这意味着,如果您在程序中调用 `readline()` 函数 n 次,那么它将从文件中读取 n 行。这就是 Python 中 `readline()` 函数的用途。Python 还提供了 `readlines()` 方法,用于读取行。它返回直到达到文件末尾 (EOF) 的行列表。 示例 2在这里,我们给出了在 Python 中使用 `readline()` 函数读取行的示例。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: ['Python is the modern day language.\n', 'It makes things so simple.\n', 'Python has easy syntax and user-friendly interaction.'] 示例 3 在这里,我们给出了在 Python 中使用 `readline()` 函数读取行的示例。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Line1: Hello Line2: Coders Line3: JavaTpoint 创建新文件可以使用 `open()` 函数的以下访问模式之一来创建新文件。`open()` 函数使用许多参数。其语法如下: file = open(path_to_file, mode) `x`、`a` 和 `w` 是 `open()` 函数的模式。这些模式的用法如下: x: 它会创建一个指定名称的新文件。如果存在同名文件,则会导致错误。 a: 如果不存在同名文件,则创建一个指定名称的新文件。如果已存在同名文件,则将内容追加到该文件。 w: 如果不存在同名文件,则创建一个指定名称的新文件。它会覆盖现有文件。 请看以下示例。 创建新文件的程序代码 1 在这里,我们给出了在 Python 中创建新文件的示例。要创建文件,我们必须使用 `open()` 方法。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: <_io.TextIOWrapper name='file2.txt' mode='x' encoding='cp1252'> File created successfully 创建新文件的程序代码 2 在这里,我们给出了在 Python 中创建新文件的示例。要创建文件,我们必须使用 `open()` 方法。在这里,我们使用 `try` 块来消除错误。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The file is does not exist 文件指针位置Python 提供了 `tell()` 方法,用于打印文件指针当前所在的字节数。`tell()` 方法返回此文件中读写指针的位置。`tell()` 方法的语法如下: 文件指针位置的程序代码 1 在这里,我们给出了如何在 Python 中查找文件指针位置的示例。我们在这里使用 `tell()` 方法,它返回字节数。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The filepointer is at byte : 0 After reading, the filepointer is at: 117 文件指针位置的程序代码 2 在这里,我们给出了如何在 Python 中查找文件指针位置的另一个示例。我们在这里也使用 `tell()` 方法,它返回字节数。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The pointer position is: 0 修改文件指针位置在实际应用程序中,有时我们需要从外部更改文件指针位置,因为我们可能需要在不同位置读取或写入内容。 为此,Python 提供了 `seek()` 方法,该方法使我们能够从外部修改文件指针位置。这意味着,使用 `seek()` 方法,我们可以轻松地在文件中移动光标,从中读取或写入文件。 语法 `seek()` 方法的语法如下: `seek()` 方法接受两个参数 offset: 它指的是文件指针在文件中的新位置。 from: 它指示要移动字节的参考位置。如果设置为 0,则以文件开头作为参考位置。如果设置为 1,则以文件指针的当前位置作为参考位置。如果设置为 2,则以文件指针的末尾作为参考位置。 请看以下示例。 在这里,我们给出了如何在 Python 中使用 `seek()` 方法修改指针位置的示例。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The filepointer is at byte : 0 After reading, the filepointer is at: 10 Python OS 模块重命名文件Python `os` 模块支持与操作系统进行交互。它来自 Python 标准实用模块。`os` 模块提供了一种可移植的方式来使用 Python 中依赖于操作系统的功能。`os` 模块提供涉及文件处理操作(如重命名、删除等)的函数。它提供了 `rename()` 方法来将指定文件重命名为新名称。使用 `rename()` 方法,我们可以轻松地重命名现有文件。此方法没有返回值。`rename()` 方法的语法如下。 语法 Python 中 `rename` 方法的语法如下: 第一个参数是当前文件名,第二个参数是修改后的名称。我们可以通过传递这两个参数来更改文件名。 重命名方法的程序代码 1 在这里,我们给出了在 Python 中使用 `rename()` 方法重命名文件的示例。当前文件名是 `file2.txt`,新文件名是 `file3.txt`。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The above code renamed current file2.txt to file3.txt 重命名方法的程序代码 2 在这里,我们给出了在 Python 中使用 `rename()` 方法重命名文件的示例。当前文件名是源,新文件名是目标。代码如下: 删除文件`os` 模块提供了 `remove()` 方法,用于删除指定的文件。 语法 `remove` 方法的语法如下: 删除方法的程序代码 1 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The file named file3.txt is deleted. 删除方法的程序代码 2 在这里,我们给出了在 Python 中使用 `remove()` 方法删除文件的示例。文件名是 `file3.txt`,`remove()` 方法会删除它。如果文件不存在,则打印命令“此文件不存在”。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: This file is not existed 创建新目录`mkdir()` 方法用于在当前工作目录中创建目录。它以数字模式创建目录。如果文件已存在于系统中,则会发生错误,在 Python 中称为 `FileExistsError`。`mkdir()` 方法不返回任何值。创建新目录的语法如下。 语法 Python 中 `mkdir()` 方法的语法如下: 输出 参数 Python 中 `mkdir()` 方法的语法如下: path - 类似 path 的对象,表示 bytes 或 string 对象的路径。 mode - 模式由整数值表示,表示创建的模式。如果未创建模式,则默认值为 `0o777`。在 `mkdir()` 方法中使用它是可选的。 dir_fd - 当指定的路径是绝对路径时,`dir_fd` 被忽略。在 `mkdir()` 方法中使用它是可选的。 `mkdir()` 方法的程序代码 1 在这里,我们给出了 `mkdir()` 方法的示例,通过它可以创建新的 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Create a new dictionary which is named new `mkdir()` 方法的程序代码 2 在这里,我们给出了 `mkdir()` 方法的示例,通过它可以创建新的 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: [Error 20] File exists: '/D:/JavaTpoint' `getcwd()` 方法此方法返回具有绝对值的当前工作目录。`getcwd()` 方法返回一个表示 Python 中工作目录的字符串值。在 `getcwd()` 方法中,不需要任何参数。 `getcwd()` 方法的用法语法如下。 语法 Python 中 `getcwd()` 方法的语法如下: `getcwd()` 方法的程序代码 1 在这里,我们给出了 `getcwd()` 方法的示例,通过它可以创建新的 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: 'C:\\Users\\DEVANSH SHARMA' `getcwd()` 方法的程序代码 2 在这里,我们给出了 `getcwd()` 方法的示例,通过它可以创建新的 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The working directory is: C:\\Users\\JavaTpoint 更改当前工作目录`chdir()` 方法用于将当前工作目录更改为指定目录。`chdir()` 方法接受新目录路径的单个参数。`chdir()` 方法不返回任何值。 语法 `chdir()` 方法的语法如下: `chdir()` 方法的程序代码 1 在这里,我们给出了 `chdir()` 方法的示例,通过它可以将当前 Python 工作目录更改为新目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: 'C:\\Users\\DEVANSH SHARMA\\Documents' `chdir()` 方法的程序代码 2 在这里,我们给出了 `chdir()` 方法的另一个示例,通过它可以将当前 Python 工作目录更改为新目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: Currently working directory is changed 删除目录`rmdir()` 方法用于删除指定的目录。如果目录不为空,则会发生 `OSError`。`rmdir()` 方法没有任何返回值。 语法 `rmdir()` 方法的程序代码 1 在这里,我们给出了 `rmdir()` 方法的示例,通过它可以删除 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: It will remove the specified directory. `rmdir()` 方法的程序代码 2 在这里,我们给出了 `rmdir()` 方法的另一个示例,通过它可以删除 Python 目录。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: The directory 'JavaTpoint' is successfully removed 输出 在这里,我们给出了 `rmdir()` 方法的示例,通过它可以删除 Python 目录。我们在这里使用 `try` 块来处理错误。代码如下: 输出 现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下: [Error 30] Permission denied: '/D:/User/Documents/JavaTpoint' The directory 'JavaTpoint' cannot be removed successfully 将 Python 输出写入文件在 Python 中,需要将 Python 脚本的输出写入文件。 `subprocess` 模块的 `check_call()` 方法用于执行 Python 脚本并将该脚本的输出写入文件。 以下示例包含两个 Python 脚本。`file1.py` 脚本执行 `file.py` 脚本,并将其输出写入文本文件 `output.txt`。 程序代码 file1.py file.py 文件相关方法文件对象提供了以下方法来操作各种操作系统上的文件。在这里,我们讨论了这些方法及其在 Python 中的用途。
结论在本教程中,我们简要讨论了 Python 文件处理。用户可以轻松地在 Python 中处理文件,例如读取和写入文件。在这里,我们讨论了 Python 中的各种方法,通过这些方法我们可以轻松地读取、写入、删除或重命名文件。我们还提供了这些方法的程序代码以更好地理解。 下一主题Python 读取 CSV 文件 |
我们请求您订阅我们的新闻通讯以获取最新更新。