logo

with 문을 사용하여 파일을 여는 방법

그만큼 ~와 함께 Python의 키워드는 컨텍스트 관리자로 사용됩니다. 모든 프로그래밍 언어에서와 마찬가지로 파일 작업이나 데이터베이스 연결과 같은 리소스를 사용하는 것은 매우 일반적입니다. 그러나 이러한 자원은 공급이 제한되어 있습니다. 따라서 가장 큰 문제는 이러한 리소스를 사용 후 반드시 해제하는 것입니다. 해제되지 않으면 리소스 누출이 발생하고 시스템 속도가 느려지거나 충돌이 발생할 수 있습니다.

우리가 알고 있듯이 open() 함수는 일반적으로 Python에서 파일을 처리하는 데 사용됩니다. 그러나 사용이 완료되면 자동으로 파일을 해제하므로 키워드와 같은 컨텍스트 관리자를 사용하여 파일을 처리하는 것이 표준 관행입니다.

문자열 정수

open() 구문을 사용하는 Python:

통사론:

open(file_path, 모드, 인코딩)을 파일로 사용:

파일 경로: 열려는 파일의 경로입니다

방법: 파일의 작동 모드입니다. 예: 읽기, 쓰기 등(r, w, r+, w+, rb, wb 등으로 표시)

부호화: 올바른 인코딩 형식으로 파일을 읽으십시오.

예시 1: with 문을 사용한 간단한 예

이미 파일 이름이 있습니다. geeksforgeeks.txt 우리 시스템에는 다음과 같은 데이터가 있습니다.

긱스포긱스,txt

이제 파일을 열고 with open() 문을 사용하여 파일의 내용을 읽습니다.

파이썬3




with>open>(>'geeksforgeeks.txt'>,>'r'>) as gfg_file:> >file_content>=> gfg_file.read()> >print>(file_content)>

>

>

자바의 for 루프

산출:

GeeksForGeeks is best for DSA>

메모: 여기서는 모드를 다음과 같이 사용했습니다. 아르 자형 대상 파일에 텍스트 데이터가 있으므로 데이터를 읽으십시오. 바이너리 파일을 읽는 경우에는 다음을 사용해야 합니다. rb 모드로.

예시 2: 우리는 또한 ~와 함께 파일에 데이터를 추가하거나 쓰는 명령문입니다.

문자열을 추가하겠습니다. 안녕하세요 괴짜들! geeksforgeeks.txt 파일에 추가하세요.

파이썬3




# appending string to file> with>open>(>'geeksforgeeks.txt'>,>'a'>) as gfg_file:> >gfg_file.write(>' Hello Geeks!'>)> > # reading the file contents> # to verify if successfully appended the data> with>open>(>'geeksforgeeks.txt'>,>'r'>) as gfg_file:> >content>=> gfg_file.read()> >print>(content)>

>

>

산출:

GeeksForGeeks is best for DSA Hello Geeks!>

메모: 여기서 우리는 파일을 여는 모드로 파일 데이터에 추가하려고 하기 때문입니다. 대신, 파일 데이터를 덮어쓰려면 다음을 사용합니다. ~ 안에 방법.

예제 3: 중첩된 open 문을 사용하여 여러 파일 열기

with 문을 사용하여 파일을 여는 방법

링크.txt

우리는 링크.txt 임의의 링크가 포함된 파일입니다. 우리는 geeksforgeeks.txt 위에서 언급한 파일을 추가하고 링크 파일의 내용을 geeksforgeeks.txt 파일.

파이썬3




# appending string to file> with>open>(>'geeksforgeeks.txt'>,>'a'>) as gfg_file:> >gfg_file.write(>' Hello Geeks!'>)> >with>open>(>'links.txt'>,>'r'>) as links_file:> >lines>=> links_file.readlines()> >gfg_file.writelines(lines)>

>

쉐타 티와리

>

geeksforgeeks.txt 수정 후 파일 내용:

with 문을 사용하여 파일을 여는 방법

긱스포긱스,txt

여기에서 우리는 그 내용을 볼 수 있습니다. 링크.txt 파일이 에 추가되었습니다. geeksforgeeks.txt 스크립트 실행 후 파일.

open() 사용과 open() 사용의 차이점

사용하는 기능이 있지만 열려 있는() 그리고 ~와 함께 열려 있는() 완전히 동일하지만 몇 가지 중요한 차이점이 있습니다.

  • open()을 사용하면 파일이 명시적으로 닫히지 않는 한 파일 핸들러를 사용할 수 있습니다. 파일_핸들러.닫기() 하지만 open() 컨텍스트 관리자와 함께 사용하는 경우 with 블록 외부에서 파일 핸들러를 사용할 수 없습니다. 높일 것이다 ValueError: 닫힌 파일에 대한 I/O 작업 그 경우에는.
  • open()을 사용하는 동안 열린 파일 인스턴스를 명시적으로 닫아야 합니다. 그렇지 않으면 동일한 파일을 여는 동안 코드의 다른 부분에서 오류가 발생할 수 있습니다. open()을 사용하면 파일 닫기가 컨텍스트 관리자에 의해 처리됩니다.
  • with open() context 문을 사용하면 들여쓰기 차이로 코드 블록을 쉽게 구분할 수 있으므로 코드가 더욱 깔끔해집니다. open()의 경우 파일 인스턴스를 닫는 것을 놓칠 수 있으며 이로 인해 메모리 누수 및 기타 I/O 작업 오류가 발생할 수 있습니다.