我想使用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")
答案 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
希望这会有所帮助......