PhaTracer 2018-10-31 03:08 采纳率: 22.2%
浏览 2707
已结题

Python 这个程序为什么运行过程中总是报错内存占用过大?

 import os
import numpy as np
mydi =os.listdir('G:\\百度导航轨迹数据\\8-9文件处理')
mydi = mydi[1:]

for ifile in mydi:
    inputdir = open('G:\\百度导航数据  起始点经纬度存储\\8-9经纬度新.txt','a')
    f1 = open('G:\\百度导航轨迹数据\\8-9文件处理'+'\\' + ifile)
    f2 = f1.readlines()
    alist = []
    for line in f2:
        line = line.strip()
        line = line.split(',')
        alist.append(line)
    a = np.array(alist)
    [rows,cols] = a.shape


    odlist = []
    pre = 0
    inputdir.write(a[0][4] + ',')
    inputdir.write(a[0][5] + ',')
    if rows > 1:
        for i in range(1,rows,15):
            j = i
            if int(a[i][1]) - int(a[pre][1]) > 515:
                while i > pre:
                    #注意这一步可能有偏差,所以在下面要加上条件。
                    if int(a[i][1]) - int(a[i-1][1]) > 500:
                        break
                    else:
                        i -= 1
                if int(a[i][1]) - int(a[i-1][1]) > 400:
                    inputdir.write(a[i][4]+',')
                    inputdir.write(a[i][5]+',')
            pre = j
        if int(a[rows - 1][1]) - int(a[i][1]) > 500:
            inputdir.write(a[rows-1][4] + ',')
            inputdir.write(a[rows - 1][5] + ',')
        inputdir.write('\n')
    else:
        inputdir.write('\n')
    inputdir.close()

好绝望啊,导入的这个文件夹里总文件大小是2G多,应该不至于内存不够吧,每次都是内存占用很大然后就停止了。
图片说明
有没有大佬看看怎样减小下内存的占用啊,感激不尽

  • 写回答

2条回答 默认 最新

  • xingjianfengaa 2018-10-31 09:27
    关注

    文件过大时 不必一下把内容读取,你可以分批来读取并处理,read(size) tell(size) seek(size), 或 readline(n)

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大