Fileinput python重用

时间:2016-05-31 11:16:16

标签: python file memory file-io


我一直在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.

任何想法?
谢谢!

0 个答案:

没有答案