python 判断txt每行内容中是否包含子串并重新写入保存的实例

yizhihongxing

针对“Python 判断txt每行内容中是否包含子串并重新写入保存”的问题,可以通过以下几个步骤实现:

1. 读取文件

需要首先先读取该txt文件中的内容,具体实现方法如下:

with open('file.txt', 'r') as f:
    lines = f.readlines()

其中,with语句可以自动帮我们关闭文件。通过readlines()函数,可以读取全部文件并按照行切分,将每行的内容作为一个字符串元素存入列表lines中。

2. 判断是否包含子串

得到每行的字符串后,我们需要判断该字符串是否包含了特定的子串。这里我们可以采用字符串的findin方法,例如:

if 'keyword' in line:
    # do something

这段代码表示如果line中包含字符串keyword,则执行某些操作。

3. 重新写入保存

如果某行包含我们想要的子串,我们可以将其写入一个新的txt文件中。例如:

with open('new_file.txt', 'w') as f:
    for line in lines:
        if 'keyword' in line:
            f.write(line)

这段代码中,with语句又帮我们自动关闭了文件,我们使用w模式打开文件以便写入内容。然后,我们遍历lines中的每一行,如果某行包含了keyword这个子串,就将该行写入新文件中。

示例说明

下面提供两个示例,来更具体的说明如何通过Python判断txt每行内容中是否包含子串并重新写入保存。

示例1

现有一个名为data.txt的txt文件,里面有如下内容:

apple
banana
orange
lemon
grape

现在我们想要找出其中包含'le'的行并保存到另一个文件中。可以使用以下代码:

with open('data.txt', 'r') as f:
    lines = f.readlines()

with open('new_data.txt', 'w') as f:
    for line in lines:
        if 'le' in line:
            f.write(line)

运行后,我们检查一下new_data.txt文件,可以发现其中保存了原文件中包含'le'的行。

示例2

假设我们现在有一个翻译文件translation.txt,其中以“中文\t英文”的格式保存着一些单词的翻译,如下所示:

苹果  apple
香蕉  banana
橙子  orange
柠檬  lemon
葡萄  grape

现在我们想要找出其中包含'apple'的行并保存到另一个文件中,可以使用以下代码:

with open('translation.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()

with open('new_translation.txt', 'w', encoding='utf-8') as f:
    for line in lines:
        if 'apple' in line.split('\t')[1]:
            f.write(line)

这段代码中,我们使用了split方法对每行进行切分,以便获取到英文翻译。再使用if 'apple' in line.split('\t')[1]这句话来判断是否包含'apple',如果包含则将整行写入新文件中。

注意:由于该示例中使用了中文,因此需要加入encoding参数来指定文件编码格式,否则会出现乱码问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 判断txt每行内容中是否包含子串并重新写入保存的实例 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 分享MySQL的自动化安装部署的方法

    分享MySQL的自动化安装部署的方法 在MySQL的自动化安装部署过程中,可以使用Ansible等自动化工具。本文主要介绍使用Ansible进行MySQL自动化安装部署的方法。 步骤1:安装Ansible 首先需要在控制机上安装Ansible,可以通过以下命令进行安装: yum install epel-release -y yum install ansi…

    人工智能概览 2023年5月25日
    00
  • python Django的web开发实例(入门)

    关于“Python Django的Web开发实例(入门)”,我可以给你提供以下攻略: 1. 安装Django 首先,在开始Django的web开发之前,你需要先安装Django。可以使用pip来安装,可输入以下命令: pip install Django 2. 创建Django项目 创建Django项目需要使用命令行工具,并使用以下命令: django-ad…

    人工智能概论 2023年5月25日
    00
  • Golang开发库的集合及作用说明

    针对“Golang开发库的集合及作用说明”,以下是完整攻略: Golang开发库的集合及作用说明 什么是Golang开发库? Golang开发库是一些经过封装、优化、单独发布并支持使用的独立代码包,能用来加速Golang程序的开发。开发人员可以将Golang开发库引入到自己的程序中,并使用其中的函数、方法和变量来满足自己的需求。 Golang开发库的作用 G…

    人工智能概览 2023年5月25日
    00
  • 详解从Django Allauth中进行登录改造小结

    下面我将详细讲解“详解从Django Allauth中进行登录改造小结”的完整攻略。 1.什么是Django Allauth Django Allauth是一个开源的Django扩展,提供了一系列默认的认证和授权视图及模板,可以快速地实现用户认证、社交账号登录、第三方授权等功能。 2.登录改造的需求及目标 在使用Django Allauth提供的默认登录页面…

    人工智能概览 2023年5月25日
    00
  • Django中session登录验证操作指南

    下面是关于Django中session登录验证操作指南的完整攻略: 概述 Django中的session机制可以用于登录验证和用户状态管理。在session中,Django会为每个用户生成一个唯一的session ID,session ID会被存储在浏览器的cookie中,并且会被用于标识用户的身份。通过验证session ID是否存在,我们可以判断用户是否…

    人工智能概览 2023年5月25日
    00
  • 关于CUDA out of memory的解决方案

    关于CUDA out of memory的解决方案,我们需要从以下几个方面来讲解: 1. 出现out of memory的原因 在使用CUDA加速深度学习训练的过程中,当显存不足时就会出现out of memory的错误。这通常有以下几个原因: Batch Size过大; 模型过于复杂; 参数设置过于复杂; 显存泄露等; 2. 解决方案 针对上述的几个原因,…

    人工智能概览 2023年5月25日
    00
  • Django Form and ModelForm的区别与使用

    Django是一款常用的Web开发框架,它提供了丰富的功能和组件来帮助开发者创建高效的Web应用程序。其中,Form和ModelForm是Django中非常重要的两个组件,用于处理表单数据和数据模型。本文将深入探讨Django Form和ModelForm的区别和使用。 1. Form和ModelForm的区别 在Django中,Form和ModelForm…

    人工智能概论 2023年5月25日
    00
  • Django中自定义模型管理器(Manager)及方法

    Django中的模型管理器(Manager)是一个可以自定义的类,用于自定义Django模型的数据库查询逻辑。通过自定义模型管理器和方法,我们可以操作模型的querysets,定义特定查询的新方法或应用过滤器。下面是详细的操作步骤: 创建自定义模型管理器 我们可以通过继承Django提供的models.Manager类来创建自定义的模型管理器。具体来说,我们…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部