迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中替换文件中的一行

作者:迹忆客 最近更新:2023/12/21 浏览次数:

文件处理被认为是任何 Web 应用程序的重要方面。与大多数编程语言类似,Python 完全能够支持文件处理。它允许你处理不同类型的文件,本质上是执行一些基本操作,例如读取和写入。它还提供了一些其他文件处理选项来操作文件。

本教程演示了可用于在 Python 中替换文件中的行的不同方法。

为了演示在本文中替换文件中一行的不同方法,我们将使用一个文本文件 motivation.txt

文本文件(motivation.txt):

There are always second chances in life. Anybody can bounce back from hardships. The hardships that we face are just a test to check our will. A strong will is all it takes to bounce back from a loss.

该文件的存储目录路径可能在读者电脑上有所不同;因此,建议进行相应调整。


在 Python 中使用 for 循环和 replace() 函数替换文件中的一行

open() 函数用于在 Python 中打开文件。该文件可以以文本或二进制格式打开,这取决于程序员。open() 函数有多种模式,所有这些模式都提供了不同的可访问性选项来打开文件。

简单的 for 循环是遍历给定文本文件中的每一行并找到我们要替换的行的传统方法。然后,可以使用 replace() 函数替换所需的行。所有这些都是在阅读模式下完成的。最后,以 write 模式打开文件,并将替换的内容写入给定文件中。

以下代码使用 for 循环和 replace() 函数。

# opening the file in read mode
file = open("motivation.txt", "r")
replacement = ""
# using the for loop
for line in file:
    line = line.strip()
    changes = line.replace("hardships", "situations")
    replacement = replacement + changes + "\n"

file.close()
# opening the file in write mode
fout = open("motivation.txt", "w")
fout.write(replacement)
fout.close()

在 Python 中用更新的内容创建一个新文件并替换原始文件

有几个函数正在工作来实现这个过程。要成功执行此方法,必须了解所有这些函数的过程。我们需要将三个模块中的几个函数导入到 Python 代码中。

  • 首先,我们需要从 tempfile 模块导入 mkstemp() 函数。此函数用于返回一个元组作为输出以及路径和文件描述符。
  • 然后,我们需要从 shutil 模块导入两个函数。第一个函数是 copymode() 函数,用于将权限位从源路径复制到目标路径。第二个函数是 move() 函数,它允许将文件从一个地方移动到另一个地方。
  • 最后,我们需要从 OS 模块导入 remove() 函数。此功能允许删除路径。

所有这些模块都需要导入到当前的 Python 代码中才能运行代码而不会出现任何错误。实现这种方式的示例代码如下。

from tempfile import mkstemp
from shutil import move, copymode
from os import fdopen, remove

# storing the path where the file is saved on your device as a variable
path = "C:\\Users\Admin\Desktop\python\test\motivation.txt"


def replacement(filepath, hardships, situations):

    # Creating a temp file
    fd, abspath = mkstemp()
    with fdopen(fd, "w") as file1:
        with open(filepath, "r") as file0:
            for line in file0:
                file1.write(line.replace(hardships, situations))
    copymode(filepath, abspath)
    remove(filepath)
    move(abspath, filepath)


replacement(path, "hardships", "situations")

在 Python 中使用 fileinput.input() 函数替换一行中的文本

fileinput.input() 方法逐行获取文件作为输入,主要用于追加和更新给定文件中的数据。

fileinputsys 模块需要被导入到当前的 Python 代码中,以便在没有任何错误的情况下运行代码。以下代码使用 fileinput.input() 函数替换 Python 中一行中的文本。

import fileinput
import sys


def replacement(file, previousw, nextw):
    for line in fileinput.input(file, inplace=1):
        line = line.replace(previousw, nextw)
        sys.stdout.write(line)


var1 = "hardships"
var2 = "situations"
file = "motivation.txt"
replacement(file, var1, var2)

在 Python 中使用 re 模块替换一行中的文本

re 模块是 Python 提供给处理正则表达式的程序员的内置模块,需要将其导入到代码中。它有助于执行在给定的特定字符串中搜索模式的任务。

在这个方法中,我们使用了来自 RegEx 模块的两个函数,即 re.compile()re.escape()re.compile() 函数用于从正则表达式模式生成正则表达式对象,然后用于匹配。re.compile() 函数用于忽略或转义 Python 中的特殊字符。

以下代码使用 Regex 模块中的几个函数来替换 Python 中一行中的文本。

import re


def replacement(Path, text, subs, flags=0):
    with open(filepath, "r+") as f1:
        contents = f1.read()
        pattern = re.compile(re.escape(text), flags)
        contents = pattern.sub(subs, contents)
        f1.seek(0)
        f1.truncate()
        f1.write(file_contents)


filepath = "motivation.txt"
text = "hardships"
subs = "situations"
replacement(filepath, text, subs)

在这里,我们还使用了 sub() 函数来用字符串或指定函数的结果替换给定的模式。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中读取文件的第一行

发布时间:2023/12/24 浏览次数:156 分类:Python

本教程演示了如何在 Python 中读取文本文件的第一行。在 Python 中,我们有内置的函数可以处理不同的文件操作。

将 Python 变量保存到文件

发布时间:2023/12/24 浏览次数:110 分类:Python

本教程讨论如何在 Python 中将变量保存到文件中。Python 完全有能力支持文件处理。它允许程序员处理不同类型的文件,执行读写等基本操作

在 Python 中从文件中删除特定行

发布时间:2023/12/24 浏览次数:183 分类:Python

本教程讨论如何在 Python 中从文件中删除特定行。Python 支持和允许数据文件处理,它构成了 Python 编程语言的重要组成部分。

在 Python 中逐行读取 CSV

发布时间:2023/12/24 浏览次数:164 分类:Python

本文讨论了如何在 Python 中逐行读取 CSV 文件。在 Python 中,读取文件并按列打印是很常见的。但是有时逐行读取文件可能会有点混乱。

在 Python 中将浮点数写入文件

发布时间:2023/12/24 浏览次数:96 分类:Python

了解如何在 Python 中将浮点数写入文件。Python 使将数据写入文件成为一项无缝任务。数据以字符串的形式写入文件。

如何在 Python 中从文件读取特定行

发布时间:2023/12/24 浏览次数:76 分类:Python

Python 具有从文件读取特定行的不同方法,例如,小文件使用 fileobject.readlines(),重复文件使用 linecache,大文件使用 enumerate()。

Python 中的最大整数

发布时间:2023/12/24 浏览次数:54 分类:Python

本教程解释了在不同版本的 Python 中,最大整数值的概念。本教程将讨论不同版本 Python 中的最大整数值,以及我们如何获取它。

在 Python 字典中按值查找键

发布时间:2023/12/23 浏览次数:112 分类:Python

本教程演示了如何在 Python 字典中按值获取键。字典是一个键值对中的元素集合。字典中存储的元素是无序的。

在 Python 中枚举字典

发布时间:2023/12/23 浏览次数:159 分类:Python

本教程演示了如何在 Python 中使用带字典的枚举函数。Python 中的 enumerate() 函数返回一个枚举类型的对象,并添加一个计数器变量来迭代一个列表或其他类型的集合。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便