我一直在python中编写一个脚本来绘制某种分形
问题是在那个算法中我需要使用一个大型的numpy矩阵
因为这(并且不可能避免使用矩阵)我决定将矩阵保存在硬盘上并从文件行读取到行,转到重要的元素,在文件中更改它并迭代再次,
我正在以这种方式使用fileinput和python,它确实有效,但是因为它必须打开和关闭文件很多次才太慢了:
fii = fileinput.input("file.txt", inplace=1)
for i, line in enumerate(fii):
if i == yi:
offset = (1 + equis*(6))
line = line[:offset-2] + str(int(line[offset-2])+1) + line[offset-1:]
if firstfunc:
line = line[:offset] + str(int(line[offset])+1) + line[offset+1:]
print line,
fii.close()
所以我想,必须有一种“重用”文件输入的方法,所以它不能多次打开文件,只有一次。
一种只替换文件中的一个字符而没有任何问题打开它一次的方法。
这样它不起作用(它只能工作一次)。
fn=fileinput.input("file.txt", inplace=1)
for n in range(points):
(x,y) = itera(x,y,dimy,prob,scale,diff,fn)
fn.close()
# This means opening it 1 time and passing the pointer to the function instead of opening
# it one time per iteration.
任何想法?
谢谢!