我想将我的以下内容从txt加载到数组中。
来自:
ATOM 1 N ASP P 1 -13.459 3.135 -11.039 1.00 0.00 PROT N
ATOM 2 HT1 ASP P 1 -13.111 4.105 -11.181 1.00 0.00 PROT H
ATOM 3 HT2 ASP P 1 -14.481 3.257 -11.190 1.00 0.00 PROT H
到两个阵列:
[[ 'ATOM', '1', 'N', 'ASP', 'P', '1' ], [ 'ATOM', '1', .....] ]
和一个浮点数组,用于以后的numpy.dot计算
array([ [-13.459, 3.135, -11.039], [-13.111, 4.105, -11.181], [....] ])
任何人都知道怎么做?
答案 0 :(得分:1)
阅读str.split
documentation。
如果未指定sep或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符
只使用split
函数,您可以在没有正则表达式的情况下执行此操作。
list1 = []
list2 = []
with open("stackoverflow.txt", "r") as f:
for line in f.readlines():
l = line.split()
list1.append(l[:6])
list2.append(l[6:9])
print list1
print list2
结果
[['ATOM', '1', 'N', 'ASP', 'P', '1'], ['ATOM', '2', 'HT1', 'ASP', 'P', '1'], ['ATOM', '3', 'HT2', 'ASP', 'P', '1']]
[['-13.459', '3.135', '-11.039'], ['-13.111', '4.105', '-11.181'], ['-14.481', '3.257', '-11.190']]
感谢Vignesh Kalai的评论。
答案 1 :(得分:0)
试试这个,希望它有效!
var="ATOM 1 N ASP P 1 -13.459 3.135 -11.039 1.00 0.00 PROT N"
list=var.split()
list1=[] list2=[]
list1.append(list[0:5])
list2.append(list[6:9])