python读取大文件csv内存溢出_Python,内存错误,csv文件太大
我有一个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文件太大相关推荐
- python 内存溢出_python内存溢出
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这里整理了一次内存泄漏的问题通常我们写python程序的时候也很少关注内存这个问 ...
- python多线程内存溢出_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python 内存溢出_Python之内存泄漏和内存溢出
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别
JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...
- Java内存溢出和内存泄露后怎么解决
1.首先这里先说一下内存溢出和内存泄露的区别: 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请了一个integer,但 ...
- java内存泄漏跟栈溢出,8.《深入理解Java虚拟机》内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别...
内存溢出和内存泄露的区别 内存溢出:指的是程序在申请内存的时候,没有足够大的空间可以分配了. 内存泄露:指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可达但无 ...
- 内存溢出、内存泄露的概述及常见情形
内存溢出(OutofMemoryError) 简述 java doc 中对 Out Of Memory Error 的解释是,没有空闲内存,并且垃圾收集器也无法提供更多内存. JVM 提供的内存管理机 ...
- java什么时候可能产生内存溢出_JAVA内存泄露和内存溢出
1)概念: 内存溢出:指在指定大小的内存空间,写入了超出大小的数据,从而导致了内存溢出. 内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误. 内存溢出通常发生于OLD段或Perm段垃圾回 ...
- Java 中的内存溢出和内存泄露是什么?我给你举个有味道的例子
作者 l 会点代码的大叔(CodeDaShu) JAVA中的内存溢出和内存泄露分别是什么,有什么联系和区别,让我们来看一看. 01 内存泄漏 & 内存溢出 1. 内存泄漏(memory lea ...
最新文章
- ASP.NET Core 2.1带来SignalR、Razor类库
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- java web start error_java web start——启动文件错误,没法启动指定应用程序这个问题如何解决?谢谢...
- 深入理解alias, alias_method和alias_method_chain
- 世界上最大的搜索引擎公司 Google 宣布与 Elastic 达成战略合作协议
- java 多线程 聊天_Java做一个多线程类似于QQ的聊天程序。
- 云服务器怎么管理文件,怎么管理云服务器的文件
- python3.x和python2.x唯一区别_Python3.x和Python2.x的区别 (转)
- rms 公式 有效值_有效值是电流电压的均方根值吗?
- Atitit mybatis的扩展使用sql udf,js java等语言 目录 1.1. 默认,mybatis使用xml,sql等语言来书写业务流程	1 2. 使用java扩展函数	1 2.1.
- 预付费售电管理系统基础知识
- 小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合
- C++源文件的编译流程简介
- LED发光二极管限流电阻的计算
- AE 二次开发。请考虑更改其中一个程序集的“嵌入互操作类型”属性。
- Java 并发编程实战演练
- android recyclerView Binary XML file line #7: Error inflating class android.support.v7.widget.Recycl
- 网络退化现象和残差网络效果
- 凡是过往,皆为序章—写在2018年国基揭榜之时
- STM8S系列基于IAR开发单通道ADC连续采样示例