回答
嗯,你可以定義採取了(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. RAII資源處理
- 4. 資源獲取就是初始化「RAII」
- 5. 什麼是邊界,漸變等LWUIT主題資源語法?
- 6. 什麼是可變常量?
- 7. 什麼是可選變量?
- 8. 什麼是子資源?
- 9. 什麼是資源組
- 10. 什麼是「資源編號」?
- 11. 資源究竟是什麼?
- 12. 什麼是資源在magento
- 13. 什麼是資源ID#170?
- 14. 什麼是Arquillian資源?
- 15. 什麼是髒資源?
- 16. Javascript自動釋放資源(如RAII)
- 17. RAII和系統資源清理
- 18. 檢索資源名稱是變量的圖像資源
- 19. Python的 - 如何自動清除類變量時,類變量是資源
- 20. 爲什麼數組變成文本「數組」而不是變量?
- 21. Python:是否有可用的運行時變量資源管理器?
- 22. 爲什麼塊變量是可選的?
- 23. R:怎麼辦RAII(或類似資源管理器)
- 24. 什麼是一些好的x86彙編語言資源?
- 25. 什麼是嵌套資源的form_for語法?
- 26. 資源前面的名稱或術語是什麼?
- 27. Rails的 - 什麼是嵌套的資源
- 28. 什麼是更加資源密集? PHP還是Python?
- 29. 什麼是python __all__模塊級變量?
- 30. 清單資源(Assembly.GetManifestResourceStream)的資源名稱是什麼?
相關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