파이썬에서는 파일을 읽거나 쓰려고 할 때마다 기본적으로 처리되므로 라이브러리를 가져올 필요가 없습니다.
가장 먼저 할 일은 내장된 열기 기능을 사용하여 파일 개체를 가져오는 것입니다.
open 함수는 파일을 열고 파일 객체를 반환합니다. 파일 개체에는 정보를 검색하거나 열려 있는 파일을 조작하는 데 사용할 수 있는 메서드와 속성이 포함되어 있습니다.
파일이란 무엇입니까?
파일에 대한 작업을 수행하기 전에 먼저 파일이 무엇인지 이해합시다. 파일은 디스크에 관련 정보를 저장하기 위한 이름이 지정된 위치입니다. 파일에는 어떤 이름과 위치가 있기 때문에 하드 디스크에 저장됩니다.
파이썬에서 파일 작업은 다음과 같은 순서로 수행됩니다.
- 파일 열기.
- 읽기 또는 쓰기 작업입니다.
- 파일 닫기.
파일 열기 - Open() 함수
파일을 읽거나 쓰기 위해 열려면 내장된 open() 함수를 사용해야 합니다.
open() 함수는 두 개의 인수를 사용합니다. 첫 번째는 파일의 이름이고 두 번째는 파일을 여는 목적입니다. 읽기 또는 쓰기를 위해?
파이썬에서 파일 객체를 여는 구문은 다음과 같습니다.
File_obj =open("파일 이름", "모드")
어디
-
핸들이라고도 하는 File_obj는 파일 객체를 추가하기 위한 변수입니다.
-
파일명:파일명.
-
모드:인터프리터에게 파일이 사용되는 방식을 알려줍니다.
>>> f =open("pytube1.py") # 현재 디렉토리에서 파일 열기>>> f =open(r"c:\users\rajesh\Documents\readme.txt") # 파일 열기 주어진 경로
모드 인수
위에서 볼 수 있듯이 open() 함수에 두 번째 인수를 제공하는 것은 선택 사항인 모드입니다. 파일을 여는 동안 모드를 지정할 수 있습니다. 'r'을 읽을지 'w'를 쓰거나 파일에 'a'를 추가할지 여부. 파일을 텍스트 모드로 열지 바이너리 모드로 열지 지정할 수도 있습니다.
기본 모드는 파일에서 읽을 때 문자열을 가져오는 텍스트 모드입니다.
다음은 open() 함수에서 지원되는 다양한 모드입니다.
Python 파일 모드
모드 | 설명 |
---|---|
'r' | 읽기 위해 파일을 엽니다. (기본값) |
'w' | 쓰기 위해 파일을 엽니다. 존재하지 않는 경우 새 파일을 생성하거나 존재하는 경우 파일을 자릅니다. |
'x' | 독점 생성을 위해 파일을 엽니다. 파일이 이미 있으면 작업이 실패합니다. |
'a' | 파일을 자르지 않고 파일 끝에 추가하기 위해 엽니다. 존재하지 않는 경우 새 파일을 만듭니다. |
't' | 텍스트 모드에서 엽니다. (기본값) |
'b' | 바이너리 모드에서 엽니다. |
'+' | 업데이트를 위해 파일 열기(읽기 및 쓰기) |
>>> f =open("pytube1.py") # 'r' 또는 'rt'와 동일>>> f =open("pytube1.py", "w")# 텍스트 모드로 쓰기>>> f =open("color3.jpg", "r+b")# 바이너리 모드에서 읽고 쓰기
기본 인코딩은 플랫폼에 따라 다릅니다. Windows에서는 'cp1252'이지만 Linux에서는 'utf-g'입니다.
인코딩 유형을 지정하는 것이 좋습니다.
>>> f =open("pytube1.py", 모드 ="r", 인코딩 ='utf-8')
텍스트 파일 만들기
저는 파이썬 셸을 사용하고 있지만 텍스트 편집기나 원하는 것을 사용하여 파이썬으로 간단한 텍스트 파일을 만들어 보겠습니다.
>>> # 현재 작업 디렉토리에 "textfile.txt"라는 텍스트 파일을 생성합니다.>>> f =open("textfile.txt", "w")>>> #above는 textfile이라는 파일을 생성합니다. 기본 디렉토리의 .txt>>> f.write("Hello, Python")13>>> f.write("\nThis is our first line")23>>> f.write("\nThis is our second line")24>>> f.write("\n더 쓰는 이유는 무엇입니까?, 할 수 있기 때문입니다 :)")37>>> f.close()
현재 작업 디렉토리에 textfile.txt라는 새 파일이 생성되고 새로 생성된 파일을 열면 다음과 같은 내용이 표시됩니다.
파이썬에서 텍스트 파일 읽기
파이썬에서 텍스트 파일을 읽기 위해 여러 가지 방법을 사용할 수 있습니다.
파일의 모든 문자를 포함하는 문자열을 추출하려는 경우. 다음 방법을 사용할 수 있습니다.
file.read()
다음은 위의 구문을 구현하는 프로그램입니다.
>>> f =open("textfile.txt", "r")>>> f.read()'안녕하세요, Python\n이것은 첫 번째 줄입니다\n이것은 두 번째 줄입니다\n더 쓰는 이유는 무엇입니까?, 할 수 있기 때문입니다 :)'
파일에서 특정 수의 문자를 읽고 싶은 경우 매우 쉽게 수행할 수 있습니다.
>>> f =open("textfile.txt", "r")>>> print(f.read(13))안녕하세요, 파이썬
그러나 파일을 한 줄씩 읽고 싶다면 readline() 함수를 사용할 수 있습니다.
>>> f =open("textfile.txt", "r")>>> print(f.read(13))안녕하세요, Python>>> print(f.readline())>>> f =open("textfile.txt", "r")>>> print(f.readline())안녕하세요, Python>>> print(f.readline())이것은 첫 번째 줄입니다>>> print(f. readline())두 번째 줄입니다>>> print(f.readline())왜 더 작성해야 할까요?, 할 수 있기 때문입니다 :)
또는 파일의 모든 줄을 적절히 구분하여 반환하려는 경우 readlines() 함수를 사용할 수 있습니다.
>>> f =open("textfile.txt", "r")>>> print(f.readlines())['Hello, Python\n', '이것은 첫 번째 줄입니다\n', '이것이 우리의 두 번째 줄입니다\n', '왜 더 쓰지?, 왜냐하면 우리가 할 수 있기 때문입니다 :)']
각 줄 위에는 쉼표로 구분되어 있습니다.
파일 개체 반복
가장 구조적이고 효율적인 방법으로 파일의 모든 줄을 읽거나 반환하려는 경우 루프 오버 방법을 사용할 수 있습니다.
>>> f =open("textfile.txt", "r")>>> for line in f:print(line)안녕하세요, Python이것은 우리의 첫 번째 줄입니다이것은 우리의 두 번째 줄입니다왜 더 쓸까요? :)
파일에 쓰기
파일에 쓰는 것은 간단합니다. 파일을 열고 쓰고자 하는 텍스트를 파일에 전달하기만 하면 됩니다.
이 방법은 기존 파일에 데이터를 추가하는 데 사용할 수 있습니다. 파일에 데이터를 쓴 후 EOL 문자를 사용하여 새 줄을 시작하십시오.
>>> f =open("textfile.txt", "w")>>> f.write("'PYTHON과 사랑에 빠지는 데에는 많은 이유가 있습니다'")54>>> f.write ("\n참조, 한 줄 더 추가했습니다 :).")36>>> f.close()>>> f =open("textfile.txt", "r")>>> for line in f:print(line)'PYTHON과 사랑에 빠지다'는 이유가 너무 많습니다. 한 줄 더 추가했습니다 :).
파일 닫기
파일 작업이 끝나면 f.close() 명령을 사용하여 작업을 종료해야 합니다. 이를 통해 파일을 완전히 닫고 사용 중인 모든 리소스를 종료하고 시스템이 다른 곳에서 사용할 수 있도록 해제합니다.
>>> f =open("textfile.txt", "r")>>> f.close()>>> f.readlines()Traceback(가장 최근 호출 마지막):파일 "", 줄 1, f.readlines()ValueError:닫힌 파일에 대한 I/O 작업
파일이 닫히면 파일 개체를 사용하려고 하면 오류가 발생합니다.
문 포함
with 문은 파일 개체와 함께 사용할 수 있습니다. 두 가지(문 및 파일 개체 포함)를 사용하면 프로그램에서 훨씬 더 깔끔한 구문과 예외 처리를 얻을 수 있습니다.
또 다른 장점은 파일 작업이 끝나면 열려 있는 모든 파일이 자동으로 닫힙니다.
구문
열기("파일 이름")를 파일로 사용:
예:
>>> f:for line in f:print(line)로 open("textfile.txt") 사용
출력
'PYTHON과 사랑에 빠지다'는 이유가 너무 많습니다. 한 줄 더 추가했습니다 :).
with 문을 사용하여 파일에 쓰는 것도 쉽습니다(지금까지 짐작했듯이).
>>> with open("textfile.txt", "a") as f:f.write("\nHello, Python-Here i come again!")38>>> open("textfile.txt"). txt") as f:for line in f:print(line)'PYTHON과 사랑에 빠지다'는 이유가 있습니다. 한 줄 더 추가했습니다. /사전>텍스트 파일의 줄 분할
python split() 함수를 사용하여 텍스트 파일에서 가져온 줄을 분할할 수 있습니다. 공백 문자, 콜론 또는 기타 원하는 문자를 사용하여 텍스트를 분할할 수 있습니다.
>>> with open("textfile.txt", "r") as f:data =f.readlines() for line in data:words =line.split() print(words)출력
['거기', '아레', '톤', '하기', '이유', '하기로', '떨어지다', '안에서', '사랑하다', '함께', '파이썬'"] ['봐,', '나', '있다', '추가', '하나', '더', '줄', ':).']['안녕하세요,', '파이썬-히어', '나 ', '이리와', '한번', '다시!']그리고 공백 대신 콜론을 사용하여 텍스트를 분할할 것이므로(위와 같이) line.split()을 line.split( ":") 그리고 우리의 출력은 다음과 같을 것입니다:["'PYTHON과 사랑에 빠지게 될 이유가 너무 많습니다'\n"]['참고로, 한 줄 더 추가했습니다 ', ').\n'] ['안녕하세요, Python-여기 또 왔어요!']