我已经学习了一个星期的python。但我不确定如何将结果保存为文件。
def process_rows(self, rows):
for row in rows:
self.rownum+=1
print(rownum)
我认为会有超过 400000 个结果。 但是 Terminal 只显示了从 441810 到 450000 的 8000 个结果。
我想将结果保存在 .txt 文件中并阅读。 我更改了我的代码如下。
def process_rows(self, rows):
f = open("output_file", 'a+')
for now in rows:
self.rownum +=1
f.write(rownum + "\n")
f.close()
但是出现了异常错误。
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ERROR:tornado.application:Uncaught exception in /conn
File "/usr/lib/python2.7/dist-packages/tornado/websocket.py", line 415, in _run_callback
callback(*args, **kwargs)
File "server.py", line 98, in process_rows
f.write(rownum + "\n")
NameError: global name 'rownum' is not defined
请您参考如下方法:
这应该有效:
def process_rows(self, rows):
f = open("output_file", 'a+')
for now in rows:
self.rownum +=1
f.write(str(self.rownum) + "\n")
f.close()
一行中有两个错误:1) 省略了“self.”; 2) 添加 int + string,如消息所述。
如果你按照建议阅读 print 和 write 的文档,你会发现 print 使用默认值自动将对象转换为字符串格式化,write 没有。写入文件时,人们通常希望指定确切的格式。
