获取txt中每行中冒号后面的内容(冒号可能会有多个,以最右边的冒号为准)

请帮忙写一个python脚本,获取txt中每行中冒号后面的内容(冒号可能会有多个,以最右边的冒号为准)
使用场景是:在一个文件夹下面有多个txt文本,需要批量提取每个个txt中冒号后面的数值然后保存到一个新的txt中。

img

import os
result = []
folder = '1'  # 文件夹地址
for f in os.listdir(folder):  # 读取文件夹下的所有内容
    if f.endswith('.txt'):  # 判断是不是txt文件
        with open(os.path.join(folder,f),'r') as r:   # 读取文件内容
            data = r.read().split('\n')
            for i in data:
                result.append(i.split(':')[-1])  # 根据‘:’对其进行split,取最后一个
with open('result.txt','w') as r1:
    r1.write('\n'.join([i for i in result]))  # 写入到文件中

文件夹地址为当前文件夹里面的名称为1的文件夹,生成的结果存储在当前文件夹的result.txt文件里面
如果对你有帮助,帮忙采纳一下!

有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img

import os
folder=r"D:\python\txt"#目录路径,注意修改
values=[]
for root,dirs,files in os.walk(folder):
    for f in files:
        with open(os.path.join(folder,f)) as f:
            lines=f.read().split('\n')
            for line in lines:
                item=line.split(':')[-1]
                values.append(item)

print(values)
with open("result.txt",'w') as f:
    f.write('\n'.join(values))

使用rsplit()从右端分割字符串即可,参考如下代码:

with open('t9141.txt','r') as f,open('t9141c.txt','w') as f1:
  lines=[x for x in f.read().split('\n') if x!='']
  for line in lines:
   f1.write(line.rsplit(':')[-1]+'\n')

运行结果:

on
loka123
nurhamad
alaamoussa
kourt
pebble4
mcintyre7

如有帮助,请点采纳。

img

import os

# 遍历文件,按特定规则处理
def trans(root_dir):
    for f in os.listdir(root_dir):
        if f.endswith(".txt") and not f.endswith('_transfer.txt'):
            f_path = os.path.join(root_dir, f)
            target_f = f_path.replace('.txt', '_transfer.txt')

            # 读取原始文件并处理
            with open(f_path, "r") as f:  # 打开文件
                str1 = f.read()  # 读取文件
            print('原始文件:', f_path)
            print(str1)
            str2 = ''
            for i in str1.split("\n"):
                str2 = str2 + str(i).split(':')[-1] + '\n'

            # 写入目标文件夹文件
            print('目标文件:', target_f)
            print(str2)
            with open(target_f, "w") as f:
                f.write(str2)  # 自带文件关闭功能,不需要再写f.close()

if __name__ == '__main__':
    trans(r"txts/")