我目前正在开展一个项目,但我遇到了问题。我必须从文本文件中提取数据供以后使用,但我真的不知道如何从这个开始。这就是数据的样子:
21 22 23 24 25
(SGU)--V (PIU)--V (PIU)--V (SGG)--V (PIG)--V
Eigenvalues -- 0.12875 0.15169 0.15169 0.18748 0.22362
1 1 Si 1S -0.10815 0.00000 0.00000 -0.05058 0.00000
2 2S -1.54103 0.00000 0.00000 0.42252 0.00000
3 3PX 0.00000 -0.50361 0.00000 0.00000 -0.48055
4 3PY 0.00000 0.00000 -0.50361 0.00000 0.00000
5 3PZ -0.36562 0.00000 0.00000 -0.49574 0.00000
6 4PX 0.00000 0.77410 0.00000 0.00000 1.31613
7 4PY 0.00000 0.00000 0.77410 0.00000 0.00000
8 4PZ 1.87724 0.00000 0.00000 1.02724 0.00000
9 5D 0 -0.06070 0.00000 0.00000 -0.09982 0.00000
10 5D+1 0.00000 0.01079 0.00000 0.00000 -0.08697
11 5D-1 0.00000 0.00000 0.01079 0.00000 0.00000
12 5D+2 0.00000 0.00000 0.00000 0.00000 0.00000
13 5D-2 0.00000 0.00000 0.00000 0.00000 0.00000
14 2 Si 1S 0.10815 0.00000 0.00000 -0.05058 0.00000
15 2S 1.54103 0.00000 0.00000 0.42252 0.00000
16 3PX 0.00000 -0.50361 0.00000 0.00000 0.48055
17 3PY 0.00000 0.00000 -0.50361 0.00000 0.00000
18 3PZ -0.36562 0.00000 0.00000 0.49574 0.00000
19 4PX 0.00000 0.77410 0.00000 0.00000 -1.31613
20 4PY 0.00000 0.00000 0.77410 0.00000 0.00000
21 4PZ 1.87724 0.00000 0.00000 -1.02724 0.00000
22 5D 0 0.06070 0.00000 0.00000 -0.09982 0.00000
23 5D+1 0.00000 -0.01079 0.00000 0.00000 -0.08697
24 5D-1 0.00000 0.00000 -0.01079 0.00000 0.00000
25 5D+2 -0.00000 0.00000 0.00000 0.00000 0.00000
26 5D-2 0.00000 0.00000 0.00000 0.00000 0.00000
26
(PIG)--V
Eigenvalues -- 0.22362
1 1 Si 1S 0.00000
2 2S 0.00000
3 3PX 0.00000
4 3PY -0.48055
5 3PZ 0.00000
6 4PX 0.00000
7 4PY 1.31613
8 4PZ 0.00000
9 5D 0 0.00000
10 5D+1 0.00000
11 5D-1 -0.08697
12 5D+2 0.00000
13 5D-2 0.00000
14 2 Si 1S 0.00000
15 2S 0.00000
16 3PX 0.00000
17 3PY 0.48055
18 3PZ 0.00000
19 4PX 0.00000
20 4PY -1.31613
21 4PZ 0.00000
22 5D 0 0.00000
23 5D+1 0.00000
24 5D-1 -0.08697
25 5D+2 0.00000
26 5D-2 0.00000
我有26个这样的列,我必须只提取列中的数字。我想知道是否有某种功能可以更容易从列中提取。在我不知道如何存储它之后,考虑到我必须能够在它之后(矩阵或列表列表?)回忆它。
有人可以帮助我开始吗?
答案 0 :(得分:1)
这看起来像是一组制表符分隔的值。您可以使用CSV模块:
>>> import csv
>>> with open('file.txt', 'rb') as fin: data = list(csv.reader(fin, delimiter='\t'))
如果它没有制表符分隔,您可以逐行读取文件并在空白处分割。删除空格,您将拥有一行数据。然后只需访问每行所需的位置。