Python,分段fau

2024-10-06 07:04:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这种方式读取python 2.7.3中的二进制文件:

import os, struct
from numpy import *

win_span = 8
coinc_window = zeros(2)
event = asarray((False, False, False, False))
Statistics = zeros(5)

with open("myfile", "rb") as f:
    byte = f.read(8)
    while byte != "":
        time_bin = struct.unpack("<Q", byte)[0]
        byte = f.read(2)
        channel_tag = struct.unpack("<H", byte)[0]
        if time_bin > coinc_window[1] + win_span:
            Statistics[4] += event[0]*event[2]
            event = asarray((False, False, False, False))
            coinc_window = coinc_window[::-1]
            coinc_window[1] = time_bin
        event[channel_tag-1] = True
        Statistics[channel_tag-1] += 1
        byte = f.read(8)    
print "Fin"

对于小的二进制文件(~2MB)它工作得很好,但是当我对大小超过~6MB的二进制文件运行它时,它实际上完成了运行,但也给出了这个错误:“分段错误”。 我不知道出了什么问题?在


Tags: 文件importeventfalsereadbintimetag