Numpy.savetxt - 如何确保保存完成?

时间:2014-06-09 23:29:48

标签: python numpy

我想使用numpy.savetxt函数,但是从文档中似乎没有办法让一个标志指示文件是否已被保存返回。

还有其他方法可以确保在继续之前保存文档吗?

我的问题是,当我保存文档时,下一行打开该文档,我遇到了一些问题。我使用for循环多次打开文档并比较结果。它第一次打开它是好的。之后,值不正确且相同。

在for-loop中

savetxt('forest_submitfile.csv', end_matrix , delimiter=',', fmt='%s,%s,%s',
              header='EventId,RankOrder,Class', comments = '')
        print('Saving for Submit in CSV SUCCESS')
        is_file_ok = False
        while not is_file_ok:
            if os.path.isfile("forest_submitfile.csv") and os.access("forest_submitfile.csv", os.R_OK):
                break
        print('Calculate AMS Metric Score')
        AMS_metric("solutionFile.csv", "forest_submitfile.csv")

2 个答案:

答案 0 :(得分:1)

您可以使用os中的几个功能来检查您 isfile检查文件是否存在 R_OK检查它是否处于可读状态,这意味着numpy已完成写入。

yourFile = "C:\folder\folder\file.txt"

import os
if os.path.isfile(yourFile) and os.access(yourFile, os.R_OK):
    # if you got into this check, your file is good to go!

答案 1 :(得分:1)

根据source,它可以在失败时引发ValueError或AttributeError。所以,也许抓住那些:

try:
   np.savetxt('file', dataStructure)
except ValueError, e:
   print('Save failed! {}'.format(str(e))
   raise SystemError
except AttributeError, e:
   print('Save failed! {}'.format(str(e))
   raise SystemError

希望这会有所帮助......