计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4257|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[Python] 求读取xyz文件中指定原子坐标的代码

[复制链接 Copy URL]

221

帖子

0

威望

2685

eV
积分
2906

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
rt.谢谢

只会C,年龄大了实在是静不下心再学一门语言

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

2#
发表于 Post on 2019-2-14 16:25:13 | 只看该作者 Only view this author
本帖最后由 liyuanhe211 于 2019-2-14 16:27 编辑

最简单的情况如下,需要处理更复杂的情况(比如一个xyz里有多个结构的)自己改吧。
这事儿用C也很容易实现,不必要学新语言。
有C的基础用上一个周末的功夫学Python,绝对能用Python实现这件事

  1. dump_lines = 空余行数
  2. input_file = 输入文件路径
  3. atom_index = 需要坐标的原子序号


  4. def get_atom_coord(input_file, dump_lines, atom_index):  # atom_index count starts from 1
  5.     with open(input_file) as input_file:
  6.         input_file = input_file.readlines()
  7.         return tuple(map(float, input_file[dump_lines + atom_index - 1].split()[1:]))


  8. print(get_atom_coord(input_file, dump_lines, atom_index))  # 返回一个由xyz三个坐标构成的元组
复制代码

221

帖子

0

威望

2685

eV
积分
2906

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2019-2-14 20:03:28 | 只看该作者 Only view this author
谢谢

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 22:06 , Processed in 0.176363 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list