=== 'test.txt'의 파일 내용 ===
안녕하세요.(\n)
오늘은 파이썬 공부를 합니다.(\n)
열공합시다!(\n)
f = open('test.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()
# === 실행 결과 ===
# 안녕하세요.
# 오늘은 파이썬 공부를 합니다.
# 열공합시다!
f = open('test.txt', 'r', encoding='utf-8')
data = f.readline()
print(data)
f.close()
# === 실행 결과 ===
# 안녕하세요.
#
f = open('test.txt', 'r', encoding='utf-8')
data = f.readlines()
print(data)
f.close()
# === 실행 결과 ===
# ['안녕하세요\n', '오늘은 파이썬 공부를 합니다.\n', '열공합시다!\n']
open('test.txt', 'r', encoding='utf-8')의 의미:
test.txt 파일을 r(읽기) 모드로 불러오되, 인코딩은 utf-8 방식으로 불러들인다.
open() 메소드의 파일 열기 모드:
r - read, 읽기 모드
w - write, 쓰기 모드(모든 내용을 삭제하고 새로 씀. 덮어쓰기에 해당.)
a - append, 추가 모드(기존 내용에 덧붙임. 이어쓰기에 해당.)
불러온 파일을 담은 변수 f를 활용해 파일의 내용을 가져올 수 있다.
read() - 전체 내용 그대로 읽어오기
readline() - 한 줄 내용을 읽어오되, 개행문자도 함께 읽어온다.
예시의 경우, print()의 개행과 중복되어 개행이 두 번 이루어졌다.
readlines() - 파일의 내용이 한 줄씩 요소로 들어있는 리스트를 반환한다.
open()으로 가져온 파일은 반드시 close() 해주는 편이 좋다.
# read()는 그 자체로 전체를 읽어오는 메소드이므로 생략함
# readline() 활용
f = open('test.txt', 'r', encoding='utf-8')
while True:
data = f.readline()
if data=="": break
else: print(data, end="") # print()의 자동 줄 바꿈 방지
f.close()
# readlines() 활용
f = open('test.txt', 'r', encoding='utf-8')
data = f.readlines()
for row in data:
print(row, end="") # print()의 자동 줄 바꿈 방지
f.close()
import csv
f = open('seoul.csv', 'r', encoding='cp949')
# seoul.csv 파일을 r(읽기) 모드로 불러오되,
# 인코딩은 cp949(Windows 한글 인코딩 default 방식) 방식으로 불러들인다.
data = csv.reader(f, delimiter=',')
# csv 파일을 담고 있는 변수 f를 reader()함수에 넣어 data라는 csv reader 객체 생성
# csv 파일의 데이터를 기호 ,를 기준으로 분리하여 읽어온다.
for row in data:
print(row)
f.close()
- 실행 결과
(이하 생략)
delimiter=','를 지정해주지 않아도 reader()의 default delimiter가 기호 , 로 지정되어 있으므로 위 실행 결과와 동일한 결과를 얻을 수 있다.
만약, 원본 파일의 delimiter 설정값과 다른 기호를 delimiter로 지정한다면 아래와 같은 결과가 나온다.
['날짜,지점,평균기온(℃),최저기온(℃),최고기온(℃)'] (이하 생략)