Python如何读取integral.txt结构化数据并分组赋值给不同变量
代码修改方案
你的原有代码没有为每个数据块打印分组表头,也没有做分组存储,修改后的代码如下:
nb = 2 # 该数值可根据实际文件的数据块数量调整 # 初始化分组存储用的列表,zetas[0]对应zeta1,cijk[0]对应cijk1,以此类推 zetas = [] cijks = [] with open("integral.txt","r") as input3: for b in range(nb): # 读取当前块的首行和基函数数量 intr = input3.readline() nprimitive = int(input3.readline()) nbasis, label, natom, _ = intr.split() # 初始化当前块的存储列表 current_zeta = [] current_cijk = [] # 打印当前块的表头 print(f" zeta{b+1} cijk{b+1}") for prim in range(nprimitive): intr2 = input3.readline() zeta , cijk = intr2.split() current_zeta.append(float(zeta)) current_cijk.append(float(cijk)) # 打印数值行,和表头对齐 print(f" {zeta} {cijk}") # 将当前块数据存入总列表 zetas.append(current_zeta) cijks.append(current_cijk)
改动说明
- 修正了原有代码中错误的注释符号,将
!替换为Python标准的# - 新增了
zetas和cijks两个列表做分组存储,第1个数据块的所有zeta值存放在zetas[0],第2个存放在zetas[1],后续调用时直接按索引取值即可,符合分组赋值需求 - 每次处理一个新数据块时,先打印对应序号的分组表头,输出格式和要求完全匹配
- 所有数值行打印时统一添加缩进,和表头对齐
内容的提问来源于stack exchange,提问作者Abd-Elazeem Mohamed
相关产品推荐
相关产品推荐

