python 提取文件中指定内容 并拷贝到另一个文件中

现在不同又很多同名txt 类型文件 每个文件中 又一句相同内容 我想提取并在这句话前面加上这个txt文件夹的名字

例如 A 文件夹中有 log.txt 文件
B 文件夹中有 log.txt 文件
C文件夹中有 log.txt 文件
每个log.txt 中有result=89
需要将log.txt 中result=89 拷贝到一个指定文件中 并在前面加上文件夹名 A result=89 这样
新文件中结果为 下面这样
A result=89
B result=89
C result=89

如能解决可另外结费

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

import os
path=r'C:\Users\85949\Desktop\total'
dirs=os.listdir(path)   #读取一级目录下面的二级目录
bc=open("最后.txt",'w+',encoding='utf-8')   #要最后保存的txt
for odirs in dirs:
    edir=os.path.join(path,odirs)   #将一级目录与该目录下的文件夹名进行拼接(得到文件夹的绝对路径)
    edirs=os.listdir(edir)     #读取文件夹里面的文件
    for file in edirs:
        files=os.path.join(edir,file)  #将文件夹的路径与该文件夹下的文件名进行拼接(得到文件的绝对路径)
        a=open(files,'r')
        for b in a.readlines():
            c=b.strip('\n')     #将遍历的这一行的换行符删除
            if 'pos close'in c:
                bc.write(odirs + ' ' + c + '\n')
            elif 'POS CLOSE' in c:   #判断该行是否有“pos close”字符
                bc.write(odirs+' '+c+'\n')
bc.close()

import os

input_dir = r''#输入路径
target = ''    #相同的字符串
path_list=[]   #所有包含log.txt的绝对路径
result=[]      #生成的结果,例如A 89
save_path=r''  #保存的路径

for root, dirs, files in os.walk(input_dir):
    for file_name in files:
        if file_name.endswith('log.txt'):
            path = os.path.join(root, file_name)
            path_list.append(path)
            
for i in result:
    if target in i:
        save_line ="{} {}".format(i,target)#按要求输入每一行
        result.append(save_line)
        
os.makedirs(os.path.dirname(save_path), exist_ok=True)#创建保存路径,存不存在都可以

with open(save_path, 'w') as f:
    f.write('\n'.join(result))#需要添加换行符

可参考如下代码:

import os
s = 'result=89'
dirs=['A','B','C']
res=[]
for d in dirs:
    for fn in os.listdir(d):
        with open(os.path.join(d,fn),'r') as f:
            for x in [l.strip() for l in f.readlines()]:
                if x==s:
                    res.append(f'{d} {x}')
with open('result.txt','w') as fw:
    fw.write('\n'.join(res))


输出result.txt

A result=89
B result=89
C result=89

你题目的解答代码如下:

import os
import re

# 读取"E:\xxx"文件夹子文件夹
path=r"E:\xxx"
st = ""
for root, dirs, files in os.walk(path):
    for d in dirs:
        file_path = os.path.join(root,d,"log.txt")
        if os.path.isfile(file_path):
            print(file_path)
            with open(file_path, 'r', encoding='utf-8') as fileObj:
                s = fileObj.read()
                r = re.findall(r"result=\d+",s)[0]
                st += d+" "+r+"\n"
print(st)
with open(r'指定文件.txt', 'w', encoding='utf-8') as fileObj:
    fileObj.write(st)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img