Append给出的结果与写入不同

时间:2017-06-12 18:10:14

标签: python python-3.x io

我试图将多个二进制文件转换为一个CSV文件。如果我使用' w' #write to a file,但每次新迭代都会写入最后一个。但是,当我使用' a' #add到一个文件,我得到的值与我使用' w'时不同。 (并且不正确)。有没有办法将我的结果放到一个文件中,而不使用append来覆盖以前的结果?

这是我的代码:

import os
import numpy as np

fileLib1 = ('/path1/')
ref = ('/path2/ref.csv')

for file in os.scandir(fileLib1):
    with open(file,'rb') as f:
        text = list(np.fromfile(f,dtype=np.float32))
    with open(ref,'a') as conv:   #problem, 'a' vs 'w'
        for n in text:
            conv.write('%s,\n' %n)

1 个答案:

答案 0 :(得分:0)

我不明白为什么你在每次迭代时打开和关闭目标文件:只需在程序的开头<{1}}打开文件,然后在最后关闭它:

w

这也可能会稍微提高程序的性能,因为打开/关闭/ ...文件通常是操作系统操作,因此不是免费的。