回答
嗯,你可以定义采取了(filename, mode)
双列表,并返回打开的文件句柄的列表(然后关闭所有句柄的自己的上下文管理当contextmanager退出)。
有关如何定义自己的上下文管理器的更多详细信息,请参阅http://docs.python.org/reference/datamodel.html#context-managers和http://docs.python.org/library/contextlib.html。
这完全符合法案。 – user1174648 2012-01-28 08:22:53
在您清楚地描述并重新读取context-manager文档之后,对我来说这似乎非常明显 - 现在。所以谢谢你和新手一起温柔! – user1174648 2012-01-28 08:33:08
如果此答案符合您的需求,请点击旁边复选标记的大纲将其标记为已接受。谢谢! – Amber 2012-01-28 23:32:07
随着3.3,contextlib.ExitStack
现在可用于这种情况。下面是来自contextlib
文档一些示例代码:
with ExitStack() as stack:
files = [stack.enter_context(open(fname)) for fname in filenames]
# All opened files will automatically be closed at the end of
# the with statement, even if attempts to open files later
# in the list raise an exception
2.7用户的运气了。升级的另一个原因。
- 1. 什么意思是资源获取是初始化(RAII)?
- 2. 资源获取就是初始化“RAII”
- 3. 什么是边界,渐变等LWUIT主题资源语法?
- 4. 什么是可选变量?
- 5. 什么是可变常量?
- 6. 什么是脏资源?
- 7. 什么是子资源?
- 8. 什么是资源组
- 9. 什么是“资源编号”?
- 10. 资源究竟是什么?
- 11. Javascript自动释放资源(如RAII)
- 12. Python的 - 如何自动清除类变量时,类变量是资源
- 13. R:怎么办RAII(或类似资源管理器)
- 14. 什么是嵌套资源的form_for语法?
- 15. 资源前面的名称或术语是什么?
- 16. 什么是一些好的x86汇编语言资源?
- 17. 什么是python __all__模块级变量?
- 18. 什么是更加资源密集? PHP还是Python?
- 19. 清单资源(Assembly.GetManifestResourceStream)的资源名称是什么?
- 20. 不可变和可变变量的区别是什么?
- 21. 什么是好的JavaScript OOP资源?
- 22. 什么是web.xml中的资源引用?
- 23. 什么是Rails中的“资源”?
- 24. 什么是学习XNA的好资源?
- 25. 什么是AWS Lambda的优秀资源?
- 26. 什么是好的MVVM资源?
- 27. 什么是ASP.NET + C#的最佳资源?
- 28. 什么是REST风格的资源?
- 29. 在Python中学习CGI编程的好资源是什么?
- 30. 什么是变量?
相关http://stackoverflow.com/questions/5071121/raii-in-python-automatic-destruction-when-leaving-a-scope – 2012-01-28 01:14:38
我无法理解“文件数量之前未知 - 手“可能意味着。你能提供一个解释这个算法打开(并保持打开)未知数量的文件。 – 2012-01-28 03:27:59
示例:脚本在命令行上采用可变数量的文件名,并将它们逐行地交叉存储到stdout。 – user1174648 2012-01-28 08:36:48