【发布时间】:2019-04-21 10:52:32
【问题描述】:
我想读入一个 csv 文件,然后将数据作为特定变量存储在标题下。
我的 csv 文件:
multiplicity
4.123
lattice parameters
1,0,0
0,1,0
0,0,1
atom sites
0,0,0
0.5,0.5,0.5
occupancy
1,0
0,1
我想创建一个代码,它可以自动将多重性下的行存储为变量的数据,以此类推,用于 csv 的其余部分。我不能在csv中对诸如multiplicity is line[2]之类的值进行硬编码,因为每个行的行数都会改变。我想创建一个循环,将标头之间的数据存储为变量,但我不确定如何。
理想情况下,我希望代码搜索第一个标题和第二个标题,然后将其间的值保存为多重性变量。然后我希望它找到第二个标题和第三个标题并将这些值保存为 lattice 参数。找到第三个标头和第四个标头以及它们之间的值作为原子站点。最后找到第四个标题和 csv 的结尾,并将其间的值保存为占用。
【问题讨论】:
-
您能详细说明一下您要使用的 csv 文件吗?
-
你的 csv 是否会包含每一行的数据??
-
我的 csv 看起来就像问题中显示的一样。问题是每个标题下的行数会有所不同。有时它会在 atom 下有 3 个站点,有时它会有 8 个,这就是为什么我需要一个循环来自动化这个过程。
-
理想情况下,我希望代码找到第一个字符串和之后的字符串,并将中间的行(带有数字的行)分配给一个变量,并为 csv 的每个部分执行此操作。因此,我会将多重性、晶格参数、原子位置和占用率的数据分别保存在一个变量中。
-
理想情况下,我希望代码搜索第一个标题和第二个标题,然后将其间的值保存为多重性变量。然后我希望它找到第二个标题和第三个标题并将这些值保存为 lattice 参数。找到第三个标头和第四个标头以及它们之间的值作为原子站点。最后找到第四个标题和 csv 的结尾,并将其间的值保存为占用。