Python에서는 다양한 유형의 파일을 불러올 수 있습니다. 여기서는 가장 일반적으로 사용되는 몇 가지 파일 유형을 불러오는 방법에 대해 소개하겠습니다.
1. 텍스트 파일 불러오기: Python의 내장 함수 `open()`을 사용하여 텍스트 파일을 읽고 쓸 수 있습니다. `with` 문을 사용하면 파일을 자동으로 닫아주기 때문에 매우 편리합니다. 텍스트 파일을 불러올 때, 내용은 보통 str (문자열) 형태로 저장됩니다. 파일의 내용을 한 번에 읽으면 전체 내용이 하나의 큰 문자열로 저장됩니다. 줄 단위로 읽을 경우, 각 줄이 문자열의 항목으로 구성된 리스트 형태로 저장될 수 있습니다.
with open('example.txt', 'r') as file:
content = file.read()
print(content)
content = '여기에는 파일의 전체 내용이 담긴 문자열이 있습니다.'
lines = ['첫 번째 줄 내용', '두 번째 줄 내용', '세 번째 줄 내용'] # 줄 단위로 읽은 경우
2. CSV 파일 불러오기: `csv` 모듈을 사용하거나 `pandas` 라이브러리를 사용하여 CSV 파일을 손쉽게 불러올 수 있습니다.
- `csv` 모듈 사용 예시:
import csv
with open('example.csv', mode='r') as file:
csv_reader = csv.reader(file)
for row in csv_reader:
print(row)
csv 모듈을 사용하면, 각 줄을 리스트로, 각 리스트의 항목은 해당 줄의 각 셀(열) 값을 나타냅니다. 따라서 변수는 리스트의 리스트 형태가 됩니다.
rows = [['Name', 'Age', 'City'], ['Alice', '24', 'New York'], ['Bob', '30', 'Los Angeles']] # csv 모듈 사용
- `pandas` 라이브러리 사용 예시:
import pandas as pd
df = pd.read_csv('example.csv')
print(df)
pandas를 사용하면, 데이터는 DataFrame 객체로 저장됩니다. DataFrame은 2차원 레이블이 지정된 데이터 구조체로, 열과 행으로 구성되어 있습니다.
# pandas 사용시
import pandas as pd
df = pd.DataFrame(data=rows[1:], columns=rows[0])
3.Excel 파일 불러오기: `pandas` 라이브러리에 있는 `read_excel()` 함수를 사용하여 Excel 파일을 불러올 수 있습니다.
import pandas as pd
df = pd.read_excel('example.xlsx')
print(df)
pandas 라이브러리를 사용하여 Excel 파일을 불러오면, 데이터는 DataFrame 객체로 저장됩니다. Excel 파일의 경우, 여러 시트를 포함할 수 있으며, 각 시트는 별도의 DataFrame으로 불러올 수 있습니다.
import pandas as pd
df = pd.DataFrame() # Excel 파일의 내용이 담긴 DataFrame
4. JSON 파일 불러오기: `json` 모듈을 사용하여 JSON 파일을 파싱할 수 있습니다.
import json
with open('example.json', 'r') as file:
data = json.load(file)
print(data)
JSON 파일을 불러오면, 데이터는 보통 중첩된 딕셔너리(dict) 형태로 저장됩니다. JSON 구조에 따라 리스트와 딕셔너리가 중첩될 수 있으며, 이는 JSON 파일의 구조에 따라 달라집니다.
data = {
"name": "Alice",
"age": 24,
"city": "New York",
"languages": ["English", "Spanish"]
} # JSON 파일의 내용이 담긴 딕셔너리
5. 이미지 파일 불러오기: `Pillow` 라이브러리(이전에는 `PIL`로 알려짐)를 사용하여 이미지 파일을 불러올 수 있습니다.
from PIL import Image
image = Image.open('example.png')
image.show()
Pillow 라이브러리를 사용하여 이미지 파일을 불러오면, 이미지는 Image 객체로 저장됩니다. 이 객체를 통해 이미지에 대한 다양한 조작과 처리가 가능합니다.
from PIL import Image
image = Image.open('example.png') # Image 객체
6. mat 파일 불러오기 : MAT 파일은 MATLAB에서 사용하는 파일 포맷으로, MATLAB 작업 환경의 변수를 저장합니다. Python에서 MAT 파일을 불러오거나 저장하려면, 주로 scipy.io 모듈의 loadmat 및 savemat 함수를 사용합니다. 이를 통해 Python에서 MATLAB 데이터를 쉽게 읽고 쓸 수 있으며, 데이터 분석, 시각화, 과학 연산 등에 활용할 수 있습니다.
from scipy.io import loadmat
data = loadmat('file.mat')
scipy.io.savemat 함수를 사용하여 Python 환경의 변수를 MAT 파일로 저장할 수 있습니다. 이 함수는 딕셔너리 형태의 변수를 받아 MATLAB 호환 파일로 저장합니다.
from scipy.io import savemat
savemat('file.mat', {'variable_name': variable})
`loadmat` 함수로 불러온 `data` 변수는 Python 딕셔너리(`dict`) 형태로 저장됩니다. 이 딕셔너리는 MATLAB 파일 내에 저장된 변수들을 키(key)로, 해당 변수에 저장된 데이터를 값(value)으로 가집니다. `data` 딕셔너리의 구조는 다음과 같습니다:
- 키(Key): MATLAB 파일 내의 변수 이름을 나타냅니다. 문자열 형태입니다.
- 값(Value): 각 키에 해당하는 MATLAB 변수의 데이터입니다. 데이터 타입은 저장된 내용에 따라 다양할 수 있으나, 주로 NumPy 배열(ndarray)로 저장됩니다. MATLAB 구조체는 또 다른 딕셔너리로, 셀 배열은 리스트나 NumPy 객체 배열로, 그리고 기타 데이터 유형은 그에 상응하는 Python 데이터 유형으로 변환됩니다.
예를 들어, MATLAB에서 다음과 같은 변수들을 포함하는 파일을 저장했다고 가정해 보겠습니다:
- 변수 `A`는 2x3의 행렬
- 변수 `B`는 문자열
- 변수 `C`는 구조체
Python에서 `loadmat`을 사용하여 이 파일을 불러오면, `data`는 다음과 같은 형태의 딕셔너리가 됩니다:
{
'A': array([[1, 2, 3], [4, 5, 6]]), # NumPy 배열
'B': array(['example string']), # NumPy 문자열 배열
'C': {'field1': array([[...]]), 'field2': array([[...]])} # 구조체는 또 다른 딕셔너리로
}
`loadmat` 함수는 또한 MATLAB 파일 내의 메타데이터를 포함하는 몇 가지 특별한 키도 반환합니다. 예를 들어, `__header__`, `__version__`, `__globals__` 등의 키는 파일의 헤더 정보, MATLAB 버전, 글로벌 변수 목록을 각각 담고 있습니다.
따라서 `data` 변수를 사용할 때는 이러한 구조를 이해하고 있어야 하며, 특정 변수에 접근하거나 조작하기 위해서는 적절한 키와 인덱싱을 사용해야 합니다.
각 예제는 Python에서 해당 유형의 파일을 불러오는 가장 기본적인 방법을 보여줍니다. 실제로 파일을 다룰 때는 파일의 경로, 인코딩 문제, 필요한 라이브러리의 설치 등 추가적인 사항을 고려해야 할 수도 있습니다. 각 방법으로 불러온 데이터는 해당 형태의 메소드와 속성을 사용하여 조작하고 처리할 수 있습니다. 예를 들어, pandas의 DataFrame은 데이터 분석과 처리를 위한 다양한 메소드를 제공합니다. 마찬가지로, Pillow의 Image 객체는 이미지를 변환하고, 필터를 적용하고, 저장하는 등의 작업을 위한 메소드를 제공합니다.
'Python 기초' 카테고리의 다른 글
이미지 x축, y축, 행과 열, row와 column, 쉽게 이해하기, 이제 절대 헷갈리지 않아요 (0) | 2024.02.20 |
---|---|
프로그래밍 화면 이해하기, 편집기, 스크립트창, 변수, 작업 공간, 명령 창, 콘솔 창, console창 (2) | 2024.02.08 |
파이썬에서의 __name__과 main 사용법: 모듈과 스크립트 이해하기 (0) | 2024.02.07 |
Python 자료형에 대한 기초 (1) | 2024.01.31 |
Integrated Development Environment(IDE), 통합개발환경이란? main.py 실행하기 / 공개된 저자코드 실행하기 (2) | 2024.01.29 |