Python数据读取处理问题

竹韵飘香 2017-04-26 11:29:26
目前得到一个2GB文件,格式如下所示(前面九行的格式一直,就是值有变化,这也是不需要的数据):(我原是重新写出我要的数据也就是ITEM:ATOMS id,type,xs,ys,zs之后的数据resulttxt,,然后读取result数据进行处理,这个花费要两小时,所以想问问怎么读取直接处理)
(我想要处理的是:每块数据开头九行不需要,然后之后的数据读取成五列,然后计算每两行数据的x,y,z与z轴形成的角度大小)
ITEM: TIMESTEP
50000
ITEM: NUMBER OF ATOMS
150000
ITEM: BOX BOUNDS pp pp pp
5.4707499220706715e+01 1.3968300077929459e+02
8.5261969777867606e+01 1.7334823022213180e+02
-7.9500500000000000e+02 7.9500500000000000e+02
ITEM: ATOMS id type xs ys zs
1 2 0.1708 0.228182 0.310668
2 2 0.167036 0.235251 0.308524
3 2 0.149806 0.233318 0.306623
4 2 0.160338 0.239989 0.304289
5 2 0.160683 0.253364 0.302185
6 2 0.139504 0.271516 0.300311
7 2 0.150571 0.287643 0.298269
8 2 0.152145 0.303647 0.296086
9 2 0.159291 0.311904 0.293852
10 2 0.166106 0.344719 0.292343
11 2 0.156983 0.361383 0.290417
12 2 0.153952 0.366168 0.288264
13 2 0.156265 0.39184 0.286528
14 2 0.153577 0.406079 0.284517
15 2 0.131359 0.392436 0.282799
16 2 0.128767 0.364054 0.280586
17 2 0.109327 0.333412 0.279308
18 2 0.0998224 0.320242 0.277244
19 2 0.088801 0.296276 0.275334
20 2 0.0720739 0.287995 0.273277
21 2 0.0561111 0.290332 0.271323
22 2 0.0383751 0.289779 0.26907
23 2 0.025998 0.289072 0.267019
24 2 0.0296787 0.297789 0.264862
ITEM: TIMESTEP
100000
ITEM: NUMBER OF ATOMS
150000
ITEM: BOX BOUNDS pp pp pp
5.4707499220706715e+01 1.3968300077929459e+02
8.5261969777867606e+01 1.7334823022213180e+02
-7.9500500000000000e+02 7.9500500000000000e+02
ITEM: ATOMS id type xs ys zs
1 2 0.1708 0.228182 0.310668
2 2 0.167036 0.235251 0.308524
3 2 0.149806 0.233318 0.306623
4 2 0.160338 0.239989 0.304289
5 2 0.160683 0.253364 0.302185
6 2 0.139504 0.271516 0.300311
7 2 0.150571 0.287643 0.298269
8 2 0.152145 0.303647 0.296086
9 2 0.159291 0.311904 0.293852
10 2 0.166106 0.344719 0.292343
11 2 0.156983 0.361383 0.290417
12 2 0.153952 0.366168 0.288264
13 2 0.156265 0.39184 0.286528
14 2 0.153577 0.406079 0.284517
15 2 0.131359 0.392436 0.282799
16 2 0.128767 0.364054 0.280586
17 2 0.109327 0.333412 0.279308
18 2 0.0998224 0.320242 0.277244
19 2 0.088801 0.296276 0.275334
20 2 0.0720739 0.287995 0.273277
21 2 0.0561111 0.290332 0.271323
22 2 0.0383751 0.289779 0.26907
23 2 0.025998 0.289072 0.267019
24 2 0.0296787 0.297789 0.264862
ITEM: TIMESTEP
150000
ITEM: NUMBER OF ATOMS
150000
ITEM: BOX BOUNDS pp pp pp
5.4707499220706715e+01 1.3968300077929459e+02
8.5261969777867606e+01 1.7334823022213180e+02
-7.9500500000000000e+02 7.9500500000000000e+02
ITEM: ATOMS id type xs ys zs
1 2 0.1708 0.228182 0.310668
2 2 0.167036 0.235251 0.308524
3 2 0.149806 0.233318 0.306623
4 2 0.160338 0.239989 0.304289
5 2 0.160683 0.253364 0.302185
6 2 0.139504 0.271516 0.300311
7 2 0.150571 0.287643 0.298269
8 2 0.152145 0.303647 0.296086
9 2 0.159291 0.311904 0.293852
10 2 0.166106 0.344719 0.292343
11 2 0.156983 0.361383 0.290417
12 2 0.153952 0.366168 0.288264
13 2 0.156265 0.39184 0.286528
14 2 0.153577 0.406079 0.284517
15 2 0.131359 0.392436 0.282799
16 2 0.128767 0.364054 0.280586
17 2 0.109327 0.333412 0.279308
18 2 0.0998224 0.320242 0.277244
19 2 0.088801 0.296276 0.275334
20 2 0.0720739 0.287995 0.273277
21 2 0.0561111 0.290332 0.271323
22 2 0.0383751 0.289779 0.26907
23 2 0.025998 0.289072 0.267019
24 2 0.0296787 0.297789 0.264862
ITEM: TIMESTEP
200000
ITEM: NUMBER OF ATOMS
150000
ITEM: BOX BOUNDS pp pp pp
5.4707499220706715e+01 1.3968300077929459e+02
8.5261969777867606e+01 1.7334823022213180e+02
-7.9500500000000000e+02 7.9500500000000000e+02
ITEM: ATOMS id type xs ys zs
1 2 0.1708 0.228182 0.310668
2 2 0.167036 0.235251 0.308524
3 2 0.149806 0.233318 0.306623
4 2 0.160338 0.239989 0.304289
5 2 0.160683 0.253364 0.302185
6 2 0.139504 0.271516 0.300311
7 2 0.150571 0.287643 0.298269
8 2 0.152145 0.303647 0.296086
9 2 0.159291 0.311904 0.293852
10 2 0.166106 0.344719 0.292343
11 2 0.156983 0.361383 0.290417
12 2 0.153952 0.366168 0.288264
13 2 0.156265 0.39184 0.286528
14 2 0.153577 0.406079 0.284517
15 2 0.131359 0.392436 0.282799
16 2 0.128767 0.364054 0.280586
17 2 0.109327 0.333412 0.279308
18 2 0.0998224 0.320242 0.277244
19 2 0.088801 0.296276 0.275334
20 2 0.0720739 0.287995 0.273277
21 2 0.0561111 0.290332 0.271323
22 2 0.0383751 0.289779 0.26907
23 2 0.025998 0.289072 0.267019
24 2 0.0296787 0.297789 0.264862
...全文
552 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹韵飘香 2018-05-01
  • 打赏
  • 举报
回复
已解决,好久没登录了,感谢!
previous_moon 2017-04-28
  • 打赏
  • 举报
回复
你的意思是一个txt文件里的有多个数据块,每个数据块的开头9行是不要的数据吗? 如果是这样的话,可以用pandas模块的read_csv函数读取txt文件,利用函数里面的chunksize参数来迭代着读取,不过得到的是一个dataframe格式,这个格式对你后续的处理也是十分方便的。附上代码(设文件名为data.txt):
import pandas as pd
chunker = pd.read_csv('data.txt', chunksize = 33, header = None)
for piece in chunker:
    data_chunk = piece.ix[9,32]
#这里的data_chunk就是每个数据块第九行以后的数据,你可以对这些数据迭操作。
chuifengde 2017-04-27
  • 打赏
  • 举报
回复
用linecatch读指定行数

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧