소개
프로그래밍 언어의 주요 기능 중 하나는 데이터를 다루는 데 도움을 주는 것입니다. 여기에는 데이터 쓰기, 읽기, 저장 및 전송이 포함됩니다. Python은 가장 인기 있는 프로그래밍 언어 중 하나입니다. Python을 사용할 계획이라면 다양한 파일 형식을 사용하는 방법에 대한 기본적인 개념을 가지고 있어야 합니다. 가장 간단한 파일 형식은 txt 또는 일반 텍스트 파일 형식입니다. 사용자 액세스 제어를 확인하는 프로그램이 있다고 가정해 보겠습니다. 목록 자체는 텍스트 파일로 저장됩니다. 따라서 특정 기업을 위해 다른 프로그램을 사용할 수도 있지만, 텍스트 문서에서 값을 추출하게 됩니다. 그렇기 때문에 텍스트 파일 형식을 이해하는 것이 중요합니다.
이 튜토리얼에서는 Python의 기본 파일 형식에 대한 간단한 배경 지식부터 시작합니다. 그런 다음 프로그램에서 텍스트 파일을 열고, 읽고, 쓰는 방법을 알아보겠습니다.
시작하기 전에…
튜토리얼을 시작하기 전에 충족해야 할 몇 가지 전제 조건이 있습니다. 먼저, 이미 Python 3를 설치했어야 합니다. 그 외에도 시스템에 로컬 프로그래밍 환경이 필요합니다. 이 튜토리얼은 Ubuntu 16.04 이상, Debian 8, CentOS 7, Mac OS X 및 Windows 10에 적용됩니다.
파일 형식
Python에서 활용할 수 있는 다양한 파일 형식이 있습니다. 아래 표는 다양한 형식과 이를 사용할 수 있는 위치를 나열합니다:
| 파일 유형 | 설명 |
|---|---|
| txt | 일반 텍스트 파일은 문자(또는 문자열)만 나타내는 데이터를 저장하며 구조화된 메타데이터는 제외합니다. |
| CSV | 쉼표로 구분된 값 파일은 쉼표(또는 다른 구분 기호)를 사용하여 저장된 데이터를 구조화하므로 데이터를 표 형식으로 저장할 수 있습니다. |
| HTML | 하이퍼텍스트 마크업 언어(HyperText Markup Language) 파일은 구조화된 데이터를 저장하며 대부분의 웹사이트에서 흔히 사용됩니다. |
| JSON | JavaScript Object Notation은 간단하고 효율적인 형식으로, 데이터를 저장하고 전송하는 데 가장 흔히 사용되는 형식 중 하나입니다. |
이 튜토리얼에서는 txt 파일 형식을 더 자세히 살펴보겠습니다.
1단계: 텍스트 파일 생성
먼저 Python에서 새 텍스트 파일을 만들어야 합니다. 이해를 돕기 위해 요일에 대한 예를 살펴보겠습니다. 이를 위해 텍스트 편집기를 열고 새 txt 파일을 만든 다음 이름을 days.txt(으)로 지정합니다. 다음으로, 새 파일에 요일을 개별 줄로 입력해 보겠습니다:
|
1 2 3 4 5 6 7 |
Monday Tuesday Wednesday Thursday Friday Saturday Sunday |
이제 콘텐츠가 준비되었으므로 파일을 저장하겠습니다. 파일을 어디에 저장하는지 기억해 두는 것이 중요합니다. 사용자가 sammy라고 가정해 보겠습니다. 사용자는 다음 경로에 파일을 저장했습니다: /users/sammy/days.txt. 앞으로의 과정에서 이 경로를 사용할 것입니다.
2단계: 텍스트 파일 열기
프로그램 작성을 시작하기 전에 편집기에서 파일을 만들어야 합니다. 다음과 같은 파일을 만들고 files.py 이름으로 /users/sammy 디렉토리에 우리의 days.txt 파일처럼 저장하겠습니다.
파일을 열려면 디스크 파일과 변수 간의 연결을 시작해야 합니다. 이것이 파일을 '열기'하는 것입니다. 파일의 위치는 파일의 경로로 표시됩니다. 파일을 열려면 경로가 필요합니다. 예를 들어, days.txt 파일의 경로는 다음과 같습니다: /users/sammy/days.txt. 그런 다음 이 데이터를 저장할 문자열 변수를 생성합니다. 아래에서 볼 수 있듯이, 우리는 path 변수를 files.py 스크립트에 만들고, 변수를 days.txt 경로에 맞게 변경할 것입니다:
|
1 |
path = '/users/sammy/days.txt' |
그 후, open() 함수를 사용하여 days.txt 파일을 열 것입니다. 이 함수의 경우 파일 경로를 제공해야 합니다. 다른 매개변수 중 가장 중요한 것은 모드(mode) 매개변수입니다. 이는 파일을 여는 모드를 지정하기 위해 추가할 수 있는 선택적 문자열입니다. 다음은 몇 가지 모드 옵션입니다:
'r’: 읽기'w’: 쓰기'x’: 새 파일 생성 및 쓰기'a’: 파일에 추가(append)'r+’: 동일한 파일 읽기 및 쓰기
파일에서 단순히 읽으려면 'r’ 모드를 사용해야 합니다. open() 함수를 실행하고 days.txt 파일을 엽니다. 다음으로, 이를 days_file 변수에 할당합니다:
|
1 |
days_file = open(path,'r') |
3단계: 텍스트 파일 읽기
파일을 연 후에는 변수를 통해 파일에서 데이터를 읽을 수 있습니다. 파일 읽기와 관련된 세 가지 연산이 있습니다. 이 세 가지를 모두 살펴보겠습니다.
첫 번째 연산은 <file>.read()입니다. 이 연산은 파일의 전체 내용을 하나의 문자열로 보여줍니다:
|
1 |
days_file.read() |
출력:
|
1 |
'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n' |
<file>.readline()입니다. 이 연산은 파일의 다음 줄을 보여줍니다. 기본적으로 파일을 한 줄씩 읽습니다:|
1 |
days_file.readline() |
출력:
|
1 |
'Monday\n' |
|
1 |
days_file.readline() |
출력:
|
1 |
'Tuesday\n' |
<file>.readlines()입니다. 이 연산은 파일의 모든 줄을 리스트로 보여줍니다. 각 항목은 한 줄을 나타냅니다:|
1 |
days_file.readlines() |
출력:
|
1 |
['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n'] |
4단계: 파일 쓰기
다음으로 새 파일을 쓰는 방법을 배우겠습니다. 이 예제 파일에는 제목(Days of the Week)이 들어가고 그 뒤에 요일이 차례대로 들어갑니다.
우선, title 변수를 생성해야 합니다:
|
1 |
title = 'Days of the Week\n' |
다음으로 요일을 문자열 변수 형태로 저장해야 합니다. 이 변수의 이름은 days로 지정하겠습니다. 위 단계에서 사용한 코드를 계속 사용하겠습니다. 파일을 읽기 모드로 열고 출력을 새 days 변수에 저장합니다:
|
1 2 3 |
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() |
즉, 제목과 개별 요일에 대한 변수를 만들었습니다. 이제 파일 자체를 쓸 수 있습니다. 첫 번째 단계는 디렉터리 /users/sammy/를 사용하여 파일 위치를 지정하는 것입니다. 경로에 새 파일인 /users/sammy/new_days.txt도 지정합니다. 위치 경로는 new_path 변수에 유지됩니다. 다음으로, open() 함수를 사용하여 ‘w’ 모드로 파일을 엽니다:
|
1 2 |
new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') |
이제 파일이 열렸으므로 쓰기 함수인 <file>.write()를 사용하여 데이터를 입력할 수 있습니다. 여기에는 단일 문자열 매개변수를 입력해야 합니다. 줄 바꿈을 하려면 줄 바꿈 문자(newline character)를 입력하세요. 이 파일의 경우 먼저 제목을 입력한 다음 요일을 입력하겠습니다. 이와 함께 스크립트 진행 상황을 추적하기 위한 몇 가지 출력(print) 문도 추가하겠습니다:
|
1 2 3 4 |
new_days.write(title) print(title) new_days.write(days) print(days) |
5단계: 파일 닫기
파일을 닫으면 디스크 파일과 파일 변수 간의 연결이 끊어집니다. 파일이 닫히면 다른 프로그램에서 해당 파일에 액세스할 수 있습니다. 이는 파일과 데이터를 안전하게 유지하는 데도 도움이 됩니다. 따라서 파일 처리가 끝나면 항상 파일을 닫아야 한다는 점을 기억하세요. 파일을 닫으려면 <file>.close() 함수를 사용할 수 있습니다:
|
1 2 |
days_file.close() new_days.close() |
이것으로 Python에서의 파일 처리 부분이 끝납니다.
6단계: 코드 확인
마지막으로 코드를 확인하겠습니다. 작성한 코드를 실행하기 전에 이 작업을 수행해야 합니다. 코드는 다음과 같아야 합니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') title = 'Days of the Week\n' new_days.write(title) print(title) new_days.write(days) print(days) days_file.close() new_days.close() |
코드를 저장한 후에는 Python 스크립트를 실행해야 합니다. 그러기 위해서는 터미널을 열어야 합니다:
|
1 |
$ python files.py |
다음과 같은 출력이 표시됩니다:
|
1 2 3 4 5 6 7 8 9 |
Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday |
코드를 확인하려면 새 파일인 new_days.txt을 엽니다. 모든 것이 올바르게 작동한다면 다음과 같이 표시됩니다:
|
1 2 3 4 5 6 7 8 9 |
Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday |
위와 유사한 내용이 보인다면 단계를 성공적으로 완료한 것입니다.
결론
이 튜토리얼을 통해 Python 3의 기본적인 파일 형식에 대해 배우셨기를 바랍니다. 이 중 가장 중요한 것 중 하나는 텍스트 파일 형식입니다. 우리는 이를 더 자세히 살펴보았습니다. 이제 데이터 파일을 열고, 읽고, 쓰고, 닫는 데 관련된 프로세스와 단계를 잘 알고 계실 것입니다. 이 정보를 활용하여 여러분의 Python 프로그래밍 경험에서 텍스트 파일 형식을 효과적으로 활용할 수 있을 것입니다.
이제 Python에서 일반 텍스트 파일을 다루는 방법을 배웠으므로, Python 활용을 시작하는 데 도움이 될 저희 블로그의 몇 가지 튜토리얼을 더 소개합니다:
- Python 3 문자열 포맷터 사용하기
- Python 3의 루프: Break, Continue 및 Pass 문 사용하기
- Python 3: 데이터 유형 변환 가이드
- Scrapy 및 Python 3로 웹 페이지를 크롤링하는 방법
즐거운 컴퓨팅 되세요!
댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.