不喜欢日常机械式的工作,要学会用自己的头脑来偷懒,省下时间打游戏哈哈哈。

本人也是python初学者(本科主要学java),写的博客也是当下学到的知识,全当做个笔记,一是方便自己日后复习,二也希望有读到本文的大佬指导一二。

首先上部分log文件:

log文件会纪录每步输出的各种能量参数、温度等数据,但我们要把其中一种数据单独拉出来并且绘制成表格,这就需要正则表达式了。

针对log文件中的每行字符串,设置正则表达式:


patten = r'(E_vdwl+\s+=+\s+[0-9\.\-]+)' search = re.search(patten, line)        if search != None:print(search.groups())              count = count + 1search = re.findall(r'([0-9\.]+)', line)    data[0, count]= float(search[2])    

这里我以提取vdwl为例,将log文件中有vdwl的那一行提取出来,提取该行的数据保存至数组中

全部代码:

import numpy as np
import pandas as pd
import re
file_name = "log.lammps"                        # log 文件名,lammps默认名
max_lines = 10001                            #存数据行数
#模式匹配
patten = r'(E_vdwl+\s+=+\s+[0-9\.\-]+)' #寻找范德华能,看需要自己修改可输出哪一条数据
f = open(file_name,"r")
data = np.zeros((1,max_lines))    #创建数组, 需要提几种数据就新建几维数组来存
count=-1
for i in range(1,max_lines):line = f.readline()     #按行读取if re.match(r'(Total wall)', line) != None:     #判断是否是正常跑完的log文件breaksearch = re.search(patten, line)        #寻找对应字条的数据if search != None:print(search.groups())              #打印分组验证用count = count + 1search = re.findall(r'([0-9\.]+)', line)    #寻找对应字条的数据   search对象找到三组数据(dihed、impro、vdwl)data[0, count]= float(search[2])    #存入数组  取search的第三组数据(vdwl)#...#...要几种数据就在这里加data=data[:,0:count]    #去除多余0位
data_pd = pd.DataFrame(data)
writer = pd.ExcelWriter('vdwl.xlsx')  #以excel表格形式输出,方便origin分析
data_pd.to_excel(writer, 'sheet1', float_format='%.4f')
writer.save()
writer.close()

注意保存的行数是你输出的数据组数加一组初始状态数据。

最后结果:

excel的数据和log文件中想要的数据对比,一模一样,这样就可以做下一步分析了。

如果觉得还不错,可以点个赞嘛,一起学习一起进步。

针对lammps输出的log文件进行数据提取(python/lammps中log文件分析)相关推荐

  1. java建立新文件保存数据_关于java中创建文件,并且写入内容

    packagecom.file.run;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;im ...

  2. wireshark提取流量包中的文件_[技术]Wireshark抓取的数据包提取文件

    0x00 简介 本期主要会教大家如何从流量中还原出来文件.下面我将会用多种办法来讲解. 使用系统:Kali Linux 0x01 tcpxtract工具网络流量提取文件(方法1) Kali Linux ...

  3. matlab读取其他位置,将文件的数据读取到matlab中,进行编辑,然后将其保存到其他位置...

    将文件的数据读取到matlab中,进行编辑,然后将其保存到其他位置 我有一个名为EXP1_SQ1_Template.txt的文件.这是一个简单的文本文件,包含以下8行: LOAD BOX 1 SUBJ ...

  4. python中flush怎么用,在Python程序中操作文件之flush()方法的使用教程

    在Python程序中操作文件之flush()方法的使用教程 flush()方法刷新内部缓冲区,像标准输入输出的fflush.这类似文件的对象,无操作. Python关闭时自动刷新文件.但是可能要关闭任 ...

  5. C# 将DataGridView里面的数据提取到DataTable中

    /// <summary> /// 将DataGridView里面的数据提取到DataTable中 /// </summary> /// <param name=&quo ...

  6. java中文件读取方式的顺序_java中读取文件的方式

    java中读取文件的方式 经常遇到java中读取文件的方式,有时候需要指定编码,有时候不需要指定编码,被搞的挺晕的,抽时间整理了一下java读取文件的方式,主要是对字符型的处理,二进制的暂时不考虑. ...

  7. VBA遍历文件夹及子文件夹中所有文件

    VBA中遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹文件.FileSearch方法在office 2007中MS把Application对象FileSearch方法删除了.所有我 ...

  8. 如何提取fq.gz中的文件_什么是GZ文件类型或扩展名? 如何创建,提取和打开Gz文件?...

    如何提取fq.gz中的文件 gz or GZ files are compressed files using gzip algorithm or a related application. gz ...

  9. Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析

    Spark商业案例与性能调优实战100课>第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析 package com.dt.spark.coresimport org.apa ...

最新文章

  1. Python atexit模块
  2. docker run指定entrypiont
  3. GetWindowRect() 和 GetClientRect() 的区别
  4. 阿里发布2020农产品电商报告数字农业将成风口
  5. map.clear还是重新new_JS 的 new 到底是干什么的?
  6. Jmeter - 服务器性能检测
  7. 蓝桥杯2018年第九届C/C++省赛B组第三题-乘积尾零
  8. JXSE 2.5 : What's Cool #5 -- java.util.concurrent
  9. php连接mssql的一些相关经验和总结
  10. 趣开门APP、微信开门小程序,让开门更简单,更有趣!
  11. 基于图神经网络的时空预测
  12. 2020 05 02 记录思考
  13. 服务器中的固态硬盘优缺点,「服务器」固态硬盘的优缺点有哪些
  14. 自动驾驶研究生就业如何,自动驾驶的研究方向
  15. 【SQL】关于SQL Server的性能优化——基础内容
  16. ChatGPT辅助处理excel表格数据
  17. 仿微信朋友圈图片预览自定义View
  18. 关于spring的aop的xml和注解操作
  19. ubuntu20.04.1 64位搭建嵌入式linux开发环境
  20. 手机录制的视频不能导入AE解决办法,86::1,先导入PR

热门文章

  1. #GMIC第一天#G49号展位上发生着这样的事er...
  2. lua语言开发esp8266接入巴法云,mqtt和tcp协议
  3. 跟着陶哲轩一起学数学(一): 习题3.1.6: 证明德摩根定律
  4. recastnavigation
  5. 腾讯QQ客户端实习一面
  6. 2021-2025年中国紫外线净水器行业市场供需与战略研究报告
  7. 漫画|官方认证:软件及信息技术从业者为新生代农民工
  8. 【kubernetes/k8s概念】Kubernetes1.12从零开始(初):课程介绍与官方文档汇总
  9. 计算机操作实务试题,计算机一级MSOffice实务练习题
  10. Revit 二次开发—获取Revit安装目录