我有一个python模块的问题,它不能处理导入大数据文件(文件目标.csv重量接近1 Gb)

加载此行时出现错误:targets = [(name, float(X), float(Y), float(Z), float(BG))

for name, X, Y, Z, BG in csv.reader(open('targets.csv'))]

回溯:

^{pr2}$

我想知道有没有办法打开文件目标.csv一行一行?也很想知道这会减慢进程吗?在

这个模块已经很慢了。。。在

谢谢!在import geometry

import csv

import numpy as np

import random

import cv2

S = 0

img = cv2.imread("MAP.tif", -1)

height, width = img.shape

pixx = height * width

iterr = float(pixx / 1000)

accomplished = 0

temp = 0

ppm = file("epson gamut.ppm", 'w')

ppm.write("P3" + "\n" + str(width) + " " + str(height) + "\n" + "255" + "\n")

# PPM file header

all_colors = [(name, float(X), float(Y), float(Z))

for name, X, Y, Z in csv.reader(open('XYZcolorlist_D65.csv'))]

# background is marked SUPPORT

support_i = [i for i, color in enumerate(all_colors) if color[0] == '255 255 255']

if len(support_i)>0:

support = np.array(all_colors[support_i[0]][1:])

del all_colors[support_i[0]]

else:

support = None

tg, hull_i = geometry.tetgen_of_hull([(X,Y,Z) for name, X, Y, Z in all_colors])

colors = [all_colors[i] for i in hull_i]

print ("thrown out: "

+ ", ".join(set(zip(*all_colors)[0]).difference(zip(*colors)[0])))

targets = [(name, float(X), float(Y), float(Z), float(BG))

for name, X, Y, Z, BG in csv.reader(open('targets.csv'))]

for target in targets:

name, X, Y, Z, BG = target

target_point = support + (np.array([X,Y,Z]) - support)/(1-BG)

tet_i, bcoords = geometry.containing_tet(tg, target_point)

if tet_i == None:

#print str("out")

ppm.write(str("255 255 255") + "\n")

print "out"

temp += 1

if temp >= iterr:

accomplished += temp

print str(100 * accomplished / (float(pixx))) + str(" %")

temp = 0

continue

# not in gamut

else:

A = bcoords[0]

B = bcoords[1]

C = bcoords[2]

D = bcoords[3]

R = random.uniform(0,1)

names = [colors[i][0] for i in tg.tets[tet_i]]

if R <= A:

S = names[0]

elif R <= A+B:

S = names[1]

elif R <= A+B+C:

S = names[2]

else:

S = names[3]

ppm.write(str(S) + "\n")

temp += 1

if temp >= iterr:

accomplished += temp

print str(100 * accomplished / (float(pixx))) + str(" %")

temp = 0

print "done"

ppm.close()

python读取大文件csv内存溢出_Python,内存错误,csv文件太大相关推荐

  1. python 内存溢出_python内存溢出

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这里整理了一次内存泄漏的问题通常我们写python程序的时候也很少关注内存这个问 ...

  2. python多线程内存溢出_Python内存泄漏和内存溢出的解决方案

    一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...

  3. python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案

    一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...

  4. python 内存溢出_Python之内存泄漏和内存溢出

    一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...

  5. java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别

    JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...

  6. Java内存溢出和内存泄露后怎么解决

    1.首先这里先说一下内存溢出和内存泄露的区别: 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请了一个integer,但 ...

  7. java内存泄漏跟栈溢出,8.《深入理解Java虚拟机》内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别...

    内存溢出和内存泄露的区别 内存溢出:指的是程序在申请内存的时候,没有足够大的空间可以分配了. 内存泄露:指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可达但无 ...

  8. 内存溢出、内存泄露的概述及常见情形

    内存溢出(OutofMemoryError) 简述 java doc 中对 Out Of Memory Error 的解释是,没有空闲内存,并且垃圾收集器也无法提供更多内存. JVM 提供的内存管理机 ...

  9. java什么时候可能产生内存溢出_JAVA内存泄露和内存溢出

    1)概念: 内存溢出:指在指定大小的内存空间,写入了超出大小的数据,从而导致了内存溢出. 内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误. 内存溢出通常发生于OLD段或Perm段垃圾回 ...

  10. ​Java 中的内存溢出和内存泄露是什么?我给你举个有味道的例子​

    作者 l 会点代码的大叔(CodeDaShu) JAVA中的内存溢出和内存泄露分别是什么,有什么联系和区别,让我们来看一看. 01 内存泄漏 & 内存溢出 1. 内存泄漏(memory lea ...

最新文章

  1. ASP.NET Core 2.1带来SignalR、Razor类库
  2. 在二叉树中找值为x的结点(假设所有结点的值都不一样)
  3. java web start error_java web start——启动文件错误,没法启动指定应用程序这个问题如何解决?谢谢...
  4. 深入理解alias, alias_method和alias_method_chain
  5. 世界上最大的搜索引擎公司 Google 宣布与 Elastic 达成战略合作协议
  6. java 多线程 聊天_Java做一个多线程类似于QQ的聊天程序。
  7. 云服务器怎么管理文件,怎么管理云服务器的文件
  8. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别 (转)
  9. rms 公式 有效值_有效值是电流电压的均方根值吗?
  10. Atitit mybatis的扩展使用sql udf,js java等语言 目录 1.1. 默认,mybatis使用xml,sql等语言来书写业务流程 1 2. 使用java扩展函数 1 2.1.
  11. 预付费售电管理系统基础知识
  12. 小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合
  13. C++源文件的编译流程简介
  14. LED发光二极管限流电阻的计算
  15. AE 二次开发。请考虑更改其中一个程序集的“嵌入互操作类型”属性。
  16. Java 并发编程实战演练
  17. android recyclerView Binary XML file line #7: Error inflating class android.support.v7.widget.Recycl
  18. 网络退化现象和残差网络效果
  19. 凡是过往,皆为序章—写在2018年国基揭榜之时
  20. STM8S系列基于IAR开发单通道ADC连续采样示例

热门文章

  1. nginx could not build the server_names_hash 解决方法
  2. UI 和 UX,区别在哪里?
  3. 智慧城市资金瓶颈亟待突破
  4. 我的阿里梦——淘宝前端必备技能
  5. 42佳优秀的 Photoshop 按钮制作教程
  6. 云计算时代的网络安全
  7. Spark2.2.0分布式集群安装(StandAlone模式)
  8. windows2012下一端口多网站 Apache配置
  9. no.1 voice
  10. Mycat原理、应用场景