|
|
本帖最后由 乐平 于 2024-9-6 13:12 编辑
你的例子其实比较简单,只需要逐行读取文件的信息成列表。
然后,列表的第一列都是 TimeStep,从列表的第二列开始都是需要统计的信息,统计所有的分子数,分子的种类,每种分子的个数。
你希望最终保存的文件可以用 Excel 打开,那么可以保存成 .csv 格式的文件,即用逗号分隔每行的信息。文本文件打开的时候如下:
- #TimeStep, No_Molecules, No_Species, H6C3O1, Ag
- 1, 65, 2, 1, 64
- 2, 65, 2, 1, 64
- 3, 65, 2, 1, 64
- 4, 65, 2, 1, 64
复制代码
用 Excel 打开的时候如下图所示:
我写的脚本可以指定你的输入文件名(默认是 lammps.dat,你可以改输入文件名)和输出的文件名(也可以不指定,默认是 results.csv)
用法如下:
- python parse_lammps.py -f 你的输入文件名 -o 你的输出文件名
复制代码
还可以用 -h 来查看帮助,例如:
- python parse_lammps.py -h
- usage: parse_lammps.py [-h] [-f <LAMMPS file>] [-o <output .csv file>]
- Parse lammps file
- options:
- -h, --help show this help message and exit
- -f <LAMMPS file>, --input_filename <LAMMPS file>
- The LAMMPS file
- -o <output .csv file>, --output_filename <output .csv file>
- The csv file
复制代码
另外,关于扩展性。我还测试了一下元素种类更多的情况。比如在你的输入文件里添加了 H2
- 0 H6C3O1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 H2 H2 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1
- 1 H6C3O1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 H2 H2 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1
- 2 H6C3O1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 H2 H2 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1
- 3 H6C3O1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 H2 H2 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1
- 4 H6C3O1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 H2 H2 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1 Ag1
复制代码
我的脚本同样也适用
|
|