Python 파일 다루기

Python / / 2020. 7. 6. 02:06
728x90
반응형

파일의 개념

  • 파일(file)은 컴퓨터를 실행할 때 가장 기본이 되는 단위다.

윈도우 환경 GUI 아이콘

  • 아이콘을 클릭하여 프로그램을 실행하는 것이 아니라, 실제로는 아이콘과 연결된 파일이 실행되는 구조다. 아이콘에서 마우스 오른쪽 버튼을 클릭하고, 속성을 선택하면 다음과 같은 화면을 볼 수 있다.

아이콘 속성

  • 컴퓨터에서 파리의 종류는 다양하지만, 기본적으로 바이너리 파일(binary file)과 텍스트 파일(text file), 두 가지로 분류할 수 있다.

바이너리 파일과 텍스트 파일 비교

  • 파이썬에서는 텍스트 파일을 다루기 위해 open() 함수를 사용한다.
더보기

# 형식

f = open("파일명", "파일 열기 모드")

f.close()

파일 열기 모드 

파일 읽기 

더보기

f = open("test.txt", "r", encoding ="utf-8") # test.txt 파일을 읽기 모드로 f에 대입 . encoding 방식 utf-contents = f.read()
print(contents)
f.close()

파일 읽기 테스트

 

파일 읽기 : with 문과 사용

- with 문과 함께 open()함수 사용 가능, with문은 들여쓰기를 사용해 들여쓰기가 있는 코드에서는 open()함수가 유지되고, 들여쓰기가 종료되면 open()함수도 끝나는 방식이다.

더보기

with open("test.txt", "r", encoding="utf-8") as test :  # as test 는 f = oepn 대입한 것처럼 예시 변수

    contents = test.read()

    print(type(contents), contents)

type = str , with형식 출력

한 줄씩 출력하기 readline()

더보기

with open("test.text","r",encoding="utf-8")  as test:

     i = 1

     while 1:

            line = test.readline()

            if not line : # line이 없다면 이제 break

                      break

            print(str(i) + "===" +line.replace("\n","")) # 한 줄씩 값 출력

            i = i+1  # 줄 체크 

한 줄씩 출력 결과

 

파일  안 글자의 통계 정보 출력하기

- split() 함수와 len() 함수를 함께 사용한다.

더보기

with open("test.txt","r,",encoding="utf-8") as test:

          contents  = test.read()

          word_list = contents.split(" ") # 빈칸 기준으로 단어를 분리 리스트

          line_list = contents.split("\n") # 한 줄씩 분리하여 리스트

 

print("총 글자의 수: ", len(contents))

print("print("총 단어의 수: ", len(word_list))
print("총 줄의 수: ", len(line_list))

글자의 통계 정보 확인

파일 쓰기

- 텍스트 파일을 저장하기 위해서는 텍스트 파일을 저장할 때 사용하는 표준을 저장해야 하는데, 이것을 인코딩(encoding)이라고 한다.

 

- 상황에 따라 파일을 계속 추가해야 하는 작업이 있을 수도 있으므로, 기존 파일에 추가 작업을 해야 하는 일이 있다. 이 경우, 많이 사용하는 방법은 추가 모드 a를 사용하는 것이다.

더보기

with open("test.txt","a",encoding = "utf-8") as test

      data = "a를 사용하는 파일 쓰기"

      test.write(data) 

with open("test.txt","r",encoding="utf-8") as test:

      contents = test.read()

      print(contents)

a를 사용해 파일 쓰기

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기