Python에서 with open 문은 구조화된 컨텍스트 내에서 파일 작업을 처리하는 우아한 방법을 제공합니다. 이렇게 하면 파일을 명시적으로 열고 닫을 필요가 없으므로 블록이 끝날 때 리소스가 적절하게 해제됩니다.
그러나 여러 파일을 동시에 수정하거나 액세스해야 하는 경우에는 어떻게 해야 할까요? 다음 질문은 이 시나리오를 탐구합니다.
여러 파일을 동시에 수정하고 싶지만 모든 파일에 성공적으로 쓸 수 있는 경우에만 가능합니다. with 문 내에서 여러 개의 열기 호출을 결합할 수 있나요?
Python 버전 2.7 및 3.1 이상에서는 대답이 '예'입니다.
with open('a', 'w') as a, open('b', 'w') as b: do_something()
이 간결한 구문을 사용하면 여러 파일을 열 수 있습니다. 동일한 컨텍스트 관리자 내에서 동시에 모든 작업을 수행할 수 있습니다.
동적 수의 파일을 열어야 하는 상황을 위해 Python 3.3은 훨씬 더 다양한 솔루션인 contextlib.ExitStack을 도입합니다.
with ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # Do something with "files"
이 접근 방식은 더 큰 유연성을 제공하므로 단일 컨텍스트 블록 내에서 파일 모음을 동적으로 열고 관리할 수 있습니다.
또는 파일을 순차적으로 처리해야 하는 경우에는 더 많은 간단한 접근 방식은 파일을 반복하고 각 루프 반복 내에서 파일을 여는 것입니다.
for fname in filenames: with open(fname) as f: # Process f
이 순차 접근 방식은 단순하다는 이점이 있으며 많은 수의 파일을 처리할 때 더 적합할 수 있습니다.
위 내용은 Python에서 'with open'을 사용하여 여러 파일을 동시에 열 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!