python如何遍历每一行文本_如何遍历多个文本文件中的行并提取表中的值。 - python...

我正在制作一个脚本来遍历多个日志文件,并希望从某些行中提取信息并将其显示为格式化表,以检查所有值,第一列中的行用作列名以及将值附加到这些列中。

文件_1:

TRACE HEADER=========================================

min max

col_1 [001-004]: 42 55

col_2 [001-005]: 34 58

col_3 [001-006]: 94 51

col_4 [001-007]: 43 27

col_5 [001-008]: 14 95

-------------------------------------

文件_2:

TRACE HEADER=========================================

min max

col_1 [001-004]: 43 55

col_2 [001-005]: 39 58

col_3 [001-006]: 91 51

col_4 [001-007]: 48 25

col_5 [001-008]: 14 96

-------------------------------------

我已经尝试遍历各行,以提取文本文件的第一列作为列标题,并提取其他值作为列表。

import re

file = "f.txt"

TRC_BEGIN = "TRACE HEADER==="

TRC_END = "---------------"

col_names = []

istrace = False

traceLineCount = 0

log = open(file, "r")

for line in log:

if line.startswith(TRC_BEGIN):

istrace = True

if istrace:

traceLineCount = traceLineCount + 1

if istrace and traceLineCount > 2:

col = re.split("\[\d\d\d\-\d\d\d\]:\s", line)

#print(col)

col_1= col[0].strip()

col_names.append(col_1)

if line.startswith(TRC_END):

istrace = False

del col_names[-2:]

预期输出:

col_1 col_2 col_3 col_4 col_5

file_1 42-55 34-58 94-51 43-27 14-95

file_2 43-55 39-58 91-51 48-25 14-96

参考方案

您可能要处理一个正则表达式事务中的所有字符串操作。您可以在捕获组中捕获所需数据时执行此操作。因此,解决方案可能看起来像这样。

import re

from pathlib import Path

p = re.compile(r'(col_\d+).*?:.(\d+).*?(\d+).*')

results = {}

files = ['test.txt', 'test2.txt']

for file in files:

if not Path(file).exists():

continue

d = {}

with open(file) as f:

for line in f:

m = p.search(line)

if m:

d[m.group(1)] = f'{m.group(2)}-{m.group(3)}'

results[file] = d

print(results) #{'test.txt': {'col_1': '42-55', 'col_2': '34-58', 'col_3': '94-51', 'col_4': '43-27', 'col_5': '14-95'}}

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值