簡體   English   中英

從換行符的txt文件中檢索值

[英]Retrieving values from a txt file of a new line delimiter

我正在嘗試索引由新的換行符分隔的每個數據。

import cvs
with open('some_file.txt') as f:
    data = f.read()
data = data.splitlines()

我可以讀成

print data[0]
>>> 0.00000e+00        1.39984e+23        8.08209e+22        1.34691e+23        7.94736e+07        3.54090e+21        1.61507e+04        0.00000e+00        4.36307e-01        2.53048e-02        1.17516e-03        5.58890e+03        5.06638e+00        0.00000e+00        4.53490e-02        5.94527e-01        4.49423e-01        5.40076e-02        8.84406e-01        1.44792e-05        2.13497e+04        3.38802e+06        3.38397e-04        3.66874e-01        2.09206e-01        3.59185e-01     45536941
print data[1]
>>> 1.00000e+00        1.46478e+23        8.85202e+22        1.07364e+23        5.65863e+07        3.16193e+21        3.11939e+03        0.00000e+00        9.08775e-01        2.01753e-02        9.82056e-04        7.68423e+03        8.29516e+00        0.00000e+00        1.26423e-01        1.68922e-02        9.82179e-01        4.30002e-02        1.21514e+00        2.93802e-06        2.44811e+06        4.00670e+06        2.71861e-05        3.79373e-01        2.31627e-01        2.82576e-01     48923553
print data[:2]
>>> ['        0.00000e+00        1.39984e+23        8.08209e+22        1.34691e+23        7.94736e+07        3.54090e+21        1.61507e+04        0.00000e+00        4.36307e-01        2.53048e-02        1.17516e-03        5.58890e+03        5.06638e+00        0.00000e+00        4.53490e-02        5.94527e-01        4.49423e-01        5.40076e-02        8.84406e-01        1.44792e-05        2.13497e+04        3.38802e+06        3.38397e-04        3.66874e-01        2.09206e-01        3.59185e-01     45536941', '        1.00000e+00        1.46478e+23        8.85202e+22        1.07364e+23        5.65863e+07        3.16193e+21        3.11939e+03        0.00000e+00        9.08775e-01        2.01753e-02        9.82056e-04        7.68423e+03        8.29516e+00        0.00000e+00        1.26423e-01        1.68922e-02        9.82179e-01        4.30002e-02        1.21514e+00        2.93802e-06        2.44811e+06        4.00670e+06        2.71861e-05        3.79373e-01        2.31627e-01        2.82576e-01     48923553']

每個索引值都有一個我要索引的特定數量。 例如, data[0]是第一個粒子及其值,其索引號由data[0][0] ,位置x,y,z由data[0][1]data[0][2]data[0][3] ,其質量為data[0][4] ,依此類推。

同樣,從整個列表data[:] ,從第二個粒子data[1] ,第三個data[2]檢索相同的數量。

我的問題是我無法像索引一樣好地索引每個粒子值

posx = data[:][1]
posy = data[:][2]
posz = data[:][3]
...

或拆分為每一列。

posx = [float(row.split()[1]) for row in data] 
posy = [float(row.split()[1]) for row in data] 
posz = [float(row.split()[1]) for row in data] 

以其格式給出。

如果您想復制它,我提供了一個保管箱鏈接: https ://www.dropbox.com/sh/6f0cy4gk8x1k0rm/AADser16cMI9Xhhw3lyP7vWaa ? dl =0

將此添加到您現有的代碼:

NiceArr = []
for item in data:
    NiceArr.append(item.split())

NiceArr將成為包含數組的數組,並且每個內部數組將包含粒子值。

您可以使用嘗試在帖子中使用的相同方法來檢索每個粒子值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM