>백엔드 개발 >파이썬 튜토리얼 >Python에서 \'with open\'을 사용하여 여러 파일을 동시에 열 수 있나요?

Python에서 \'with open\'을 사용하여 여러 파일을 동시에 열 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-11-17 13:26:02432검색

Can I Use

Python에서 "with open"을 사용하여 동시에 여러 파일 열기

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.