3 Star 0 Fork 0

Zi-Jing Zhang/PyMagicTools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
log_parser.py 1.63 KB
一键复制 编辑 原始数据 按行查看 历史
Zi-Jing Zhang 提交于 2023-11-27 19:32 +08:00 . 可识别基本的材质
# -*- coding: utf-8 -*-
# @Time : 2023/11/27 12:43
# @Author : Z.J. Zhang
# @Email : zijingzhang@mail.ustc.edu.cn
# @File : log_parser.py
# @Software: PyCharm
"""
用于解析Magic的log文件
"""
import re
import time
import pandas
import pandas as pd
from _logging import logger
class LOG:
def __init__(self, filename):
t = time.time()
self.filename = filename
self.text = ""
with open(self.filename, 'r') as f:
self.text = f.read()
t1 = time.time()
logger.info("将文件%s读入内存(未处理)耗时:%.2f" % (filename, t1 - t))
self.geom_structure_generator_result = self.parse_geom_generator_result(self.text)
@staticmethod
def parse_geom_generator_result(text: str) -> pandas.DataFrame:
materialtype_table_start = r'===> Structure Generator 2d <==='
it = re.finditer(materialtype_table_start, text)
for match in it:
sta = match.span()[1] + 1
materialtype_table_end = '> ================================================\n ... Testing for Boundary type OUTGOING'
it = re.finditer(materialtype_table_end, text)
for match in it:
end = match.span()[0]
list = text[sta:end].split('\n')
for i in range(len(list)):
list[i] = list[i].split()
columns = list[0]
del list[0]
df = pd.DataFrame(list, columns=columns)
df = df.drop(df.shape[0] - 1)
return df
if __name__ == '__main__':
filename = r"E:\GeneratorAccelerator\Genac\optmz\Genac10G50keV\粗网格\单独处理\Genac10G50keV2.log"
log = LOG(filename)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhangzj-gitee/PyMagicTools.git
git@gitee.com:zhangzj-gitee/PyMagicTools.git
zhangzj-gitee
PyMagicTools
PyMagicTools
master

搜索帮助