我想从fmt格式的变量文件中读取特定数据。在这种情况下,所需的数据是a
,b
和c
以及fft coefficients (width,height,depth)
(25,300,300)的值。阅读文本文件中的特定数据(C)
一个例子是从该文件将变量分配: a = 2.467
b = 30.000
c = 30.000
width = 25
height = 300
depth = 300
。 这些值会随着输入文件的变化而改变。
目前我能想到的唯一方法就是在文本文件中读取它们。但我不喜欢这个,因为如果文本文件在布局上略有变化,它很容易出现错误。任何人都可以提出一种替代方法(是否有类似于C中的Python重新模块)?
请参考下面的示例文本文件:
BEGIN header
Real Lattice(A) Lattice parameters(A) Cell Angles
2.4675850 0.0000000 0.0000000 a = 2.467585 alpha = 90.000000
0.0000000 30.0000000 0.0000000 b = 30.000000 beta = 90.000000
0.0000000 0.0000000 30.0000000 c = 30.000000 gamma = 90.000000
1 ! nspins
25 300 300 ! fine FFT grid along <a,b,c>
END header: data is "<a b c> pot" in units of Hartrees
“如果文本文件在布局上略有变化,容易出现错误” - 如果您不能依赖某种文件格式来保持恒定/一致,那么任何人都很难编写解析器,甚至是Python包开发人员。您可以在Python中执行的所有操作也可以在C中完成。 –
如果您按行'a'读取文件行,'b'和'c'很容易被存储,因为它的写法类似于'a = value'文件。但是'fft系数'并不那么简单,但是如果它们的位置总是相同的(也就是说总是写入'精细FFT [...]]'在这一行)这也很容易。 –
请至少提供“fmt”格式相关规范的链接。我从来没有听说过它。 –