我正在调用一个函数并试图捕获它输出的输出,但在3.3中我无法访问StringIO。有没有其他的方法呢?捕获在3.3中打印出的Python函数吗?
2
A
回答
0
0
StringIO
在Python 3已经移动尝试from io import StringIO
。您还需要决定是否需要StringIO
或BytesIO
。
但是,它听起来好像你正试图在(例如)单元测试中对sys.stdout
进行猴子补丁。除非您确定需要,否则我不会在您的测试中进行此操作;它会使难以维护的测试。我建议你的代码需要重构 - 考虑改变你的函数返回一个字符串,客户可以在闲暇时打印(或写入文件,或在GUI上显示,或...)。
3
在Python 3中,StringIO
住在io
包中。所以,你仍然可以使用它来捕获输出:
>>> def someMagicFunction():
print('foo bar baz')
>>> import io, sys
>>> original = sys.stdout
>>> sys.stdout = new = io.StringIO()
>>> someMagicFunction()
>>> sys.stdout = original
>>> print(new.getvalue())
foo bar baz
+0
谢谢......不知道为什么我找不到StringIO之前:) – user2836292
相关问题
- 1. Python 3.3:打印中的TabError
- 2. 捕获输出打印在python
- 3. Python捕获所有打印的输出
- 4. 在C#中捕获Python打印语句
- 5. 打印在Python 3.3中不起作用?
- 6. 在Python中捕获Scapy函数输出
- 7. 在Python中的打印函数中打印函数
- 8. Python 3.3打印('string',end ='')
- 9. Python打印函数在解释器中获取意外输出?
- 10. Python可以打印函数定义吗?
- 11. 在一个打印函数中的Python打印数组
- 12. 只打印真正Python 3.3的变量
- 13. Python 3.3:Anagram函数的输出
- 14. 在Python 3.3中的time.sleep()函数?
- 15. 在python中,我可以将打印函数的输出重定向到stderr吗?
- 16. python中的sys.settrace打印函数参数
- 17. 是在Python中打印一个函数?
- 18. 在python shell中打印函数
- 19. 在Python中打印捕获的对象的列表
- 20. 如何在python 3.5中打印exec()函数的输出?
- 21. 三元函数可以返回并在python中打印吗?
- 22. 我们可以在Python中使用return来打印函数吗?
- 23. Gtest:捕获输出,但打印失败
- 24. 在silverlight打印中捕获打印对话框的取消
- 25. 在Python中处理函数输入3.3
- 26. 在Python中,我能阻止函数捕获KeyboardInterrupt和SystemExit吗?
- 27. python错误打印函数
- 28. 在f#中捕获打印语句
- 29. 如何在python中捕获打印机事件
- 30. JavaScript函数打印出NaN
[subprocess.check_output(http://docs.python.org/2/library/subprocess.html) –
这是一个有点混乱,一方面是因为3.3确实有'io.StringIO',因为不清楚'StringIO'如何捕获输出,除非函数接受一个类似文件的输出目标,或者重新绑定'print'或其他东西。 – DSM
谢谢......不知道为什么我之前找不到StringIO :) – user2836292