在Python中,如果某个函数没有返回就结束了,则假定它为return
None。您的
numbersOut()功能没有
return任何作用。所以,当你写
out.writerow(numbersOut())
你最终打电话来
out.writerow(None)。这将给您看到的错误,因为
None它不是一个序列,并且
csv模块不知道如何将其写
None为一行CSV数据。
我想你会过更好的声明
numbersOut采取
out作为参数:
def numbersOut(out): for i in range (1, 1001): out.writerow("%s" % (i+1, )) out.writerow("n")
然后使用
numbersOut(out)
我建议您进行其他几处更改。
如果只想向一行写入一个值,请替换该行
out.writerow("%s" % (i+1, ))
与
out.writerow(["%s" % (i+1, )])
(请注意已插入
[和
])。
writerow取一个值序列并将每个值写到一个单独的逗号分隔的单元格中。如果传递单个字符串,则该字符串将被解释为字符序列,并且每个字符最终都位于其自己的单元格中。
其次,我建议删除该行
out.writerow("n")。当您使用编写一行时
writerow,
csv模块将为您输出行尾。您无需手动结束行。实际上,该行
out.writerow("n")最终在包含数字的每一行之间写入一个包含换行符的单元格。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)