我试图在python中创建一个逐行过滤器。但是,stdin.readlines()在开始处理之前读取所有行,并且python内存耗尽(MemoryError)。
我怎么能一次只记一行呢?
我有这样的代码:
for line in sys.stdin.readlines():
if( filter.apply( line ) ):
print( line )
(注:我在2.6上)
我正在尝试理解以下MemoryError的原因。python中的字典是否有一些预先定义的限制?
self.text是从文件读取的长字符串(大约4.5MB)L等于4641652
L = len(self.text)
test = {}
for i in xrange(L,0,-1):
try:
test[i] = self.text[i-1:]
except MemoryError:
print "Memory Error at the " + str(i) +"th
我刚开始使用python,下面是我的代码,
import numpy as np
val = 4**10
Q = []
for j in range(60):
a = []
for i in range(val):
tmp = (i+j)**2
a.append(tmp)
Q.append(a)
T= zip(*Q)
G = []
for t in T:
tmps2 = np.average(t)
G.append(tmps2)
下面是我的代码错误:
MemoryError
我试图理解何时用Python捕获MemoryError是有意义的,我有两个场景:
场景1:成功捕获MemoryError。
import numpy as np
try:
a = np.ones(100000000000)
except MemoryError:
print 'got memory error, plan B'
a = np.ones(10) # this gets created
场景2:我的程序冻结了
silly = []
c = 0
try:
while True:
silly.append((str(c)
我有一些python代码,它在一段时间后生成一个MemoryError。我知道它消耗了很多记忆。因此,我决定将代码放在一个try/except块中,这样骨架看起来如下所示:
while True:
while True:
try:
#---- do some stuff
except MemoryError as err:
print(err)
break
因此,我的想法是,如果出现了第一个while-loop,并且由于有一个外部
--这是我要运行的python脚本:
n = 50000000000 ##50 billion
b = [0]*n
for x in range(0,n):
b[x] = random.randint(1,899999)
..。但我得到的输出是:
E:\python\> python sort.py
Traceback (most recent call last):
File "E:\python\sort.py", line 8, in <module>
b = [0]*n
MemoryError
那我现在该怎么办?
我很抱歉不能进一步说明问题,但这是因为我不明白这里到底出了什么问题。这个错误是由第75行引起的,但是他拥有我调用的变量的所有值。我显然错过了什么,我希望有人能告诉我。
我要做的是为一个变量添加一个字符串,用于列表的每个部分。
<type 'exceptions.MemoryError'> Python 2.6.4: /opt/users/ipg/s/p/ipg.*********/python/python
Sat May 10 19:42:39 2014
A problem occurred in a Python script. Here is the sequ
我有两个矩阵,A是3033x3033,X是3033x20。我正在运行以下行(如中所建议的):
n, d = X.shape
c = X.reshape(n, -1, d) - X.reshape(-1, n, d)
return np.tensordot(A.reshape(n, n, -1) * c, c, axes=[(0,1),(0,1)])
在最后一行中,Python只是停下来说"MemoryError“。如何通过更改Python中的某些设置或以更有效的内存方式执行此操作来解决这一问题?
我想用python替换文件中的unicode字符。
这是我的代码:
with codecs.open('/etc/bluetooth/main.conf', "r", "utf8") as fi:
mainconf=fi.read()
forrep = ''.decode('utf8')
for line in mainconf.splitlines():
if('Name = ' in line):
我有一个小Python (2.7.10)脚本,如下所示。
def numbers_calc(max_num, num_step):
"""Returns every number from 0 to max_num with num_step as step."""
n = 0
l = []
while n < max_num + 1:
l.append(n)
n += n * num_step
return l
n_l = []
n_l.append(numbe
我有两只熊猫DataFrames df1和df2,它们的格式相当标准:
one two three feature
A 1 2 3 feature1
B 4 5 6 feature2
C 7 8 9 feature3
D 10 11 12 feature4
E 13 14 15 feature5
F 16 17 18 feature6
...
和df2的格式相同。这些DataFrames的大小分别为175 MB和140 MB。
m
我有两个非常相似的程序,它们的功能只是略有不同。在这两个程序中,都产生了1568x1568numpy矩阵。在我的一个程序中,这个矩阵创建工作得很好,但是在另一个程序中,我收到了一个MemoryError。错误消息如下:
a = empty(shape, dtype, order)
MemoryError
此外,当我将创建矩阵的代码段从正常工作的程序复制到它自己的python文件中时,也会生成MemoryError。
下面的代码重现了这个错误:
import matplotlib.pyplot as plt
import numpy as np
Z = np.zeros((1568,
我用python编写了一个程序来查找b,使得质数p除以b^2-8。b的范围是1,(p+1)/2。
对于小整数,它可以工作,只说最多7位数。但对于大整数,比如p = 140737471578113,则不然。我得到了错误信息
for i in range (2,p1,1):
MemoryError
我把程序写成
#!/usr/bin/python3
p=long(raw_input('enter the prime number:'))
p1=long((p+1)/2)
for i in range (2,p1,1):
s = long((i*i)-8)
对于以下Python代码:
fp = open('output.txt', 'wb')
# Very big file, writes a lot of lines, n is a very large number
for i in range(1, n):
fp.write('something' * n)
fp.close()
以上写作过程可持续30分钟以上。有时我会得到错误的MemoryError。关闭前文件的内容是存储在内存中还是写在临时文件中?如果它位于临时文件中,那么它在Linux操作系统上的一般位置是什么?
编辑:
在fo
我在做一个库式的结账/签入系统。当用户单击exit时,程序调用一个close_window函数,该函数在销毁窗口之前将当前字典对象转储到泡菜文件中。
def close_window(self):
if messagebox.askokcancel("Quit", "You want to close the program now?"):
patrons.dump_data()
self.master.destroy()
当程序再次启动时,它会调用一个load_data函数,该函数加载被腌制的文件。不知何故,我在退出系
我尝试了一个非常简单的python脚本,它用于在每一行中添加某些字符串,代码如下:
import csv
List = []
list = []
csv_reader = csv.reader(open('moz_press_IDE_mdoc.csv'))
i = 0
for row in csv_reader:
List.append(list)
j = 1
for num in row:
tmp = str(i) + ':'
num = tmp + num
j += 1
下面的代码导致内存溢出:
import numpy as np
a = np.arange(10000000)
np.save('a', a)
l = []
while True:
l.append(np.load('a.npy'))
Python错误出了分段错误,而不是MemoryError。对于像AWS EC2这样没有交换内存的机器来说,情况似乎是这样的(我尝试过使用一台具有更多内存和交换内存的机器,并得到一个MemoryError)。
我在Python2.6.2中使用NumPy。我正在尝试创建一个小的(长度为3)简单的布尔数组。下面的代码给了我一个MemoryError,我认为它不应该这样做。
import numpy as np
cond = np.fromiter((x in [2] for x in [0, 1, 2]), dtype = np.bool)
它给我的错误是:
MemoryError:无法分配数组内存
但是,以下获取列表的方法(与ndarray相反)运行良好(不使用numpy):
cond = list((x in [2] for x in [0, 1, 2]))
我在Numpy代码中做错了什么吗?我的感
我在python "Python memory error“中遇到了内存问题。实际上,我尝试使用以下脚本从一个大的.bson文件中恢复数据:
with open('xxxx.bson','rb') as f:
data = bson.decode_all(f.read())
错误消息:
data = bson.decode_all(f.read())
MemoryError
感谢您能提供的任何帮助
我现在是Django和Python的初学者用户,到目前为止,我在本地做的任何事情都在上传后立即在我的主机上工作。我的主机是由Hostmonster提供的。
但是,我刚刚安装了PyEnchant。我使用它的唯一目的就是进行基本的拼写检查和提示新单词。此外,“string”始终是由“+”分隔的单词字符串。
from enchant import Dict
def spellcheck(string):
spellcheck = Dict("en-GB")
suggestedword = []
for word in string.split('
当我在iPython笔记本中运行流动的代码时:
_x = np.concatenate([_batches.next() for i in range(_batches.samples)])
我收到这条错误消息
---------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-14-313ecf2ea184> in <module>()
---->