Python未执行write命令

2024-04-19 04:47:28 发布

您现在位置:Python中文网/ 问答频道 /正文

Python没有完成以下函数(使用iPython笔记本和Graphlab)

def print_submission_file(var, filename='submission.txt'):
    with open(filename, 'w') as f:
        f.write('Id,Sales\n')
        for row in var:
            f.write(str(row['Id']) + ',' + str(row['Prediction']) + '\n')

print_submission_file(test, 'submission.txt')

这是脚本停止时的日志(5/10分钟后)

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-9-f51bf8359fb9> in <module>()
  5             f.write(str(row['Id']) + ',' + str(row['Prediction']) + '\n')
  6 
----> 7 print_submission_file(test, 'submission.txt')

<ipython-input-9-f51bf8359fb9> in print_submission_file(var, filename)
  2     with open(filename, 'w') as f:
  3         f.write('Id,Sales\n')
----> 4         for row in var:
  5             f.write(str(row['Id']) + ',' + str(row['Prediction']) + '\n')
  6 

/Users/MaximeDeBruyn/.graphlab/anaconda/lib/python2.7/site-packages/graphlab/data_structures/sframe.pyc in generator()
   3694         def generator():
   3695             elems_at_a_time = 262144
-> 3696             self.__proxy__.begin_iterator()
   3697             ret = self.__proxy__.iterator_get_next(elems_at_a_time)
   3698             column_names = self.column_names()

graphlab/cython/cy_sframe.pyx in        graphlab.cython.cy_sframe.UnitySFrameProxy.begin_iterator()

graphlab/cython/cy_sframe.pyx in graphlab.cython.cy_sframe.UnitySFrameProxy.begin_iterator()

RuntimeError: Runtime Exception. Canceled by user

所以函数在提交.txt但从来没有完成for循环。。。 谢谢你的帮助。我真的不知道该怎么办。你知道吗


Tags: intxtidsubmissionvarfilenamecythonfile
1条回答
网友
1楼 · 发布于 2024-04-19 04:47:28

您的循环可能需要很长时间才能以这种方式遍历SFrame。错误消息是因为您用Ctrl-C取消了命令(我猜是这样)。你知道吗

如果您只想用这两列编写csv,请尝试以下操作(假设var是SFrame):

var[['Id','Prediction']].save("submission", format="csv")

相关问题 更多 >