gpt4 book ai didi

python - 在 python 中读取文本文件并在每一行中提取特定值?

转载 作者:行者123 更新时间:2023-12-04 01:03:22 25 4
gpt4 key购买 nike

我有一个文本文件,每一行如下:

 n:1 mse_avg:8.46 mse_y:12.69 mse_u:0.00 mse_v:0.00 psnr_avg:38.86 psnr_y:37.10 psnr_u:inf psnr_v:inf 
n:2 mse_avg:12.20 mse_y:18.30 mse_u:0.00 mse_v:0.00 psnr_avg:37.27 psnr_y:35.51 psnr_u:inf psnr_v:inf

我需要读取每行提取的 psnr_y 及其在矩阵中的值。 python还有其他读取文本文件的功能吗?我需要从每一行中提取 psnr_y。我有一个 matlab 代码,但我需要一个 python 代码,我不熟悉 python 中的函数。你能帮我解决这个问题吗?这是 matlab 代码:

opt = {'Delimiter',{':',' '}};
fid = fopen('data.txt','rt');
nmc = nnz(fgetl(fid)==':');
frewind(fid);
fmt = repmat('%s%f',1,nmc);
tmp = textscan(fid,fmt,opt{:});
fclose(fid);
fnm = [tmp{:,1:2:end}];
out = cell2struct(tmp(:,2:2:end),fnm(1,:),2)

最佳答案

您可以像下面这样使用正则表达式:

import re

with open('textfile.txt') as f:
a = f.readlines()
pattern = r'psnr_y:([\d.]+)'
for line in a:
print(re.search(pattern, line)[1])

此代码将只返回 psnr_y 的值。您可以删除 [1] 并将其更改为 [0] 以获得完整的字符串,例如“psnr_y:37.10”。如果要将其分配到列表中,代码如下所示:

import re

a_list = []

with open('textfile.txt') as f:
a = f.readlines()
pattern = r'psnr_y:([\d.]+)'
for line in a:
a_list.append(re.search(pattern, line)[1])

关于python - 在 python 中读取文本文件并在每一行中提取特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67387580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com