gpt4 book ai didi

python - 在 genfromtxt next(fhd) 中,添加新的 "with open file"行时出现 StopIteration 错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:01 24 4
gpt4 key购买 nike

我有一个需要分析的输入文件(它是一个包含 4 帧的轨迹文件),其中涉及每个帧的 for 循环并创建一个临时文件,然后进行计算。计算结果连同输入文件中的一些信息将被写入输出文件。这是我的代码。 “solvent”和“refpts”是包含数字的列表的名称。 out 文件中需要这些列表的内容。

with open(infile, 'rb') as fi:
with open(outfile,'a') as fj:
fj.write('C, O, C-O distance, q, hbond')
fj.write('\n')
for frame in range(fr+1):
fj.write(str(frame))
fj.write('\n')
chunk = list(islice(fi, nlines))
#writes the snapshot's coordinate in a temporary file 'frame.gro'
with open('frame.gro', 'w') as out:
for line in chunk:
out.write(line)
with open("frame.gro", 'r') as f:
o = np.genfromtxt("frame.gro", dtype=None, skip_header=2, usecols=(0,1,3,4,5), max_rows=atoms) #this is line 182
# obtain info, then do calcs ...
for n in range(len(solvent)):
for i in range(len(refpts)):
#calcs, add items to lists, etc
fj.write(str(refpts[i]))
# ...rest of the code

一切正常,直到我添加了包含“fj”的每一行。发生此错误:

Traceback (most recent call last): File "script.py", line 182, in o = np.genfromtxt("frame.gro", dtype=None, skip_header=2, usecols=(0,1,3,4,5), max_rows=atoms) File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1707, in genfromtxt next(fhd) StopIteration

我能做什么?

编辑:更改了标题中的一个单词编辑#2:包含有错误的实际行

最佳答案

扩展我的评论

        with open("frame.gro", 'r') as f:
o = np.genfromtxt("frame.gro", dtype=None, skip_header=2, usecols=(0,1,3,4,5), max_rows=atoms) #this is line 182
# obtain info, then do calcs ...

为什么打开frame.gro,但不使用打开的文件? genfromtxt 行使用文件名,而不是 f。我不知道这个多余的打开是否导致了错误,但它确实表明了一些草率的思考和/或测试。

如果我尝试将 genfromtxt 应用于行数太少的文件 - 太少而无法跳过,我可能会收到 StopIteration 错误。错误行号不同,但这可能是因为我使用不同的 Py3 numpy。

您需要检查新编写的 frame.gro 并确保它符合您在 genfromtxt 中的假设 - 大小、内容等。

关于python - 在 genfromtxt next(fhd) 中,添加新的 "with open file"行时出现 StopIteration 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53025951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com