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

假设需要批量处理多个txt文件,然后将包含子串的内容写入一个txt文件中,这里假设我的子串为"_9"和“_10”


下面就是我想要得到的其中两行内容(实际上还有很多行哈哈):


直接上代码:

#! /usr/bin/python
# -*- coding:UTF-8 -*-

import os
import os.path
import string

txt文件所在的路径和需要保存的目标路径(根据自己的实际目录进行更改即可):

Crop-Ocr_txt文件夹内放置了我需要批量处理的所有txt,我在同级目录下新建一个文件夹名为1000_simple_Ocrtxts,这里目标路径随意就好,能方便找到就行

txt_path = 'D:/youxinProjections/trafic-youxin/MobileNet_v1/obtain_qq_json_new/Crop_Ocr_txt/'
des_txt_path = 'D:/youxinProjections/trafic-youxin/MobileNet_v1/obtain_qq_json_new/1000_simple_OCRtxts/'

txt_files = os.listdir(txt_path) #txt_files能得到该目录下的所有txt文件的文件名

定义一个函数专门用来取包含子串的内容并写入到新的txt文件中,在后边的主函数中直接调用这个函数就行就行:

def select_simples():
    for txtfile in txt_files:
        if not os.path.isdir(txtfile):
            in_file = open(txt_path + txtfile, 'r')
            out_file = open(des_txt_path + txtfile, 'a') # 此处自动新建一个文件夹和txtfile的文件名相同,'a'为自动换行写入
            lines = in_file.readlines()
            for line in lines:
                str_name = line.split(" ")[0] # 这里获取的是txt文件中每行内容以空格隔开的第一个元素,也就是我自己txt文件中的*.jpg那一块内容
                str1 = '_9' # 这就是我要判断的子串
                str2 = '_10' # 这也是子串

                #if (string.find(str_name, str1)!=-1) or (string.find(str_name, str2)):
                if (str1 in str_name) or (str2 in str_name): # in 可以判断在str_name中是否包含有两个子串,
                    out_file.write(line) # 若包含子串,则将该行内容全部重新写入新的txt文件
                    print(str_name)
            out_file.close() 

主函数到了!:

if __name__ == '__main__':
    select_simples()

晒一下最后的结果:


完美有没有!!!





 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaoRenkk123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值