注册 登录
编程论坛 Python论坛

求助!麻烦帮看看循环为什么走不完?内存问题?

发布于 2010-05-02 17:58, 748 次点击
import binascii
f = open('/root/1.cfg','rb')
cfgFile = f.read()
f.close()
newFile = cfgFile[0]
for i in range(1,len(cfgFile)):
    if cfgFile[i]=="\xff":
        newFile = newFile + cfgFile[i]
        print '%d are xff' %i
    else:
        print '%d not xff' %i
        asciiNum=int(binascii.b2a_hex(cfgFile[i]),16)
        if(asciiNum%2==1):
            asciiNum=(asciiNum+127)/2
            newFile = newFile + binascii.a2b_hex(2*''+hex(asciiNum)[2:])
        else:
            asciiNum=asciiNum/2
            newFile = newFile + binascii.a2b_hex(2*''+hex(asciiNum)[2:])

len(cfgFile)长度是21000多,但是循环子走到12100这样就结束了,请问下原因是?google不知道怎么找关键词。
2 回复
#2
wode5130xm2011-05-19 20:01
我也是才学习python,我有点想法,你考虑下吧,在java中,输出流输出后要调用一个叫做flush()的方法,这个方法的作用就是清空当前缓冲区,把缓冲区中的字节“排”到目的地,python中不知道有没有这个方法,但我想肯定跟缓冲区有关,就是说你是读完了文件中的所有内容,但是内容还有一部分存在于缓冲区中,你这个程序没有跑完可能就是这个原因
#3
wode5130xm2011-05-19 20:06
查看了下 API ,的确有 flush()这个函数,你试试吧,程序我没有很懂,就不自己测试了
1