파이썬에서 다양한 수의 파일을 여는 "최선의"방법은 무엇입니까?가변 개수의 리소스에 대한 Python "RAII"관용어는 무엇입니까?
파일 수가 미리 알려지지 않은 경우 "사용"하는 방법을 추측 할 수 없습니다.
(수신 RAII/C++에서)
파이썬에서 다양한 수의 파일을 여는 "최선의"방법은 무엇입니까?가변 개수의 리소스에 대한 Python "RAII"관용어는 무엇입니까?
파일 수가 미리 알려지지 않은 경우 "사용"하는 방법을 추측 할 수 없습니다.
(수신 RAII/C++에서)
글쎄, 당신이 그 핸들을 모두 (filename, mode)
쌍 목록을 가져다가 열린 파일 핸들의 목록을 반환 (다음 폐쇄 자신의 상황에 맞는 관리자를 정의 할 수 있습니다 때 contextmanager 종료).
자신의 컨텍스트 관리자를 정의하는 방법에 대한 자세한 내용은 http://docs.python.org/reference/datamodel.html#context-managers 및 http://docs.python.org/library/contextlib.html을 참조하십시오.
이것은 청구서에 딱 들어 맞습니다. – user1174648
명확한 설명과 컨텍스트 관리자 문서를 다시 읽은 후에 이것은 나에게 매우 명백하게 보입니다. 덕분에 초보자들에게 친절하게 대해 줘서 고마워! – user1174648
이 답변이 필요에 부합되는 경우 옆에있는 체크 표시의 개요를 클릭하여 동의 표시로 표시하십시오. 감사! – Amber
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 사용자가 운이 좋지 않습니다. 업그레이드 할 또 다른 이유.
관련 항목 http://stackoverflow.com/questions/5071121/raii-in-python-automatic-destruction-when-leaving-a-scope –
"파일 수가 알려지지 않은 것을 짐작할 수 없습니다. 손 "은 아마도 의미 할 수 있습니다. 알려지지 않은 수의 파일을 열고 열어 두는이 알고리즘에 대한 설명을 제공 할 수 있습니까? –
예 : 명령 줄에서 다양한 수의 파일 이름을 사용하고 모든 파일을 stdout에 줄 간격으로 인터리브하는 스크립트입니다. – user1174648