프로그래밍 언어/Python

Python에서 "with open"을 사용하여 여러 파일을 여는 방법

Rateye 2021. 6. 28. 10:18
728x90
반응형
질문 : Python에서 "열기 사용"을 사용하여 여러 파일을 열 수 있습니까?

나는 그들 모두에 쓸 수 IFF에, 한 번에 파일의 몇 가지를 변경하고 싶습니다. 어떻게 든 여러 열린 호출을 with 문과 결합 할 수 있는지 궁금합니다.

try:
  with open('a', 'w') as a and open('b', 'w') as b:
    do_something()
except IOError as e:
  print 'Operation failed: %s' % e.strerror

이것이 가능하지 않다면이 문제에 대한 우아한 해결책은 어떤 모습일까요?

답변

Python 2.7 (또는 각각 3.1)부터 다음과 같이 작성할 수 있습니다.

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()

이전 버전의 Python에서는 때때로 contextlib.nested() 를 사용하여 컨텍스트 관리자를 중첩 할 수 있습니다. 그러나 여러 파일을 여는 경우 예상대로 작동하지 않습니다. 자세한 내용은 링크 된 문서를 참조하세요.

드물게 다양한 수의 파일을 동시에 열고 싶은 경우 Python 버전 3.3부터 contextlib.ExitStack

with ExitStack() as stack:
    files = [stack.enter_context(open(fname)) for fname in filenames]
    # Do something with "files"

대부분의 경우 다양한 파일 세트가 있지만 차례로 열어보고 싶을 것입니다.

출처 : https://stackoverflow.com/questions/4617034/how-can-i-open-multiple-files-using-with-open-in-python
728x90
반응형