次のcontacts.txtファイルがあります。
0, 0.989246526088, 0.762584552317, 0.989246526088, 0.989246526088, 5, 2, 20, 91, 114, 127
1, 0.832366089749, 0.67518676348, 0.832366089749, 0.832366089749, 3, 6, 24, 114
2, 0.923079422275, 0.798673866486, 0.923079422275, 0.923079422275, 5, 0, 65, 73, 91, 114
3, 0.0820269441841, 0.879379910489, 0.0820269441841, 0.0820269441841, 3, 71, 91, 120
4, 0.449863833595, 0.985883232333, 0.449863833595, 0.449863833595, 3, 16, 69, 104
6, 0.887055481253, 0.623261413511, 0.887055481253, 0.887055481253, 5, 1, 25, 87, 100, 114
7, 0.111156294437, 0.255444048959, 0.111156294437, 0.111156294437, 3, 19, 83, 111
9, 0.514040361142, 0.373030232483, 0.514040361142, 0.514040361142, 4, 38, 59, 72, 76
11, 0.597169587765, 0.0286747230467, 0.597169587765, 0.597169587765, 3, 56, 101, 108
12, 0.89754811115, 0.361667992685, 0.89754811115, 0.89754811115, 3, 86, 92, 126
13, 0.571528472894, 0.860250953547, 0.571528472894, 0.571528472894, 5, 30, 79, 82, 101, 104
14, 0.593696200969, 0.680733858699, 0.593696200969, 0.593696200969, 3, 78, 103, 124
ファイルに応じて、16383 行または 16384 行についても同様です。
次のコードを試しました
with open('contacts.dat') as infile:
n, x, y, z, radius, contact_number = [[int(num) for num in line.strip().split()[:5]] for line in infile]
neighbours = [[int(num) for num in line.strip().split()[5:]] for line in infile]
うまくいかないようです。
私が探しているのは、ファイルの各行について、次のように異なる配列に格納することです。
行ごと
- ゼロ番目の要素 -->
n
(ここで --> は「配列に格納される」ことを意味します) - 最初の要素 -->
x
- 2 番目の要素 -- >
y
- 3 番目の要素 -->
z
- 4 番目の要素 -->
radius
- 5 番目の要素 -->
contact_number
- 行の残りの要素 (存在する場合) -->
neighbours