신규 블로그를 만들었습니다!
이전글
2018/01/05 - [Language/Python] - Python :: 함수(method, function)에 대해 알아보자 #10
이번에는 파일 입출력에 대해서 알아 보겠습니다.
file을 불러오기 위해 open() 함수를 이용합니다.
기본형태는
open('파일 주소 및 이름', 'w 또는 r 또는 a')
|
위와 같습니다.
파일 입출력에는 3가지 형태가 있습니다.
w(write) : 쓰기
r(read) : 읽기
a(add) : 추가하기
그럼 차례대로 예제를 통해 알아보도록 하겠습니다.
1. Write 쓰기
# w: 쓰기
f = open('C:/programing/python/data/ex_memo.txt','w')
students = ['김철수', '최영', '한석규', '김태희']
for student in students:
msg = student
f.write(msg+"\n")
f.close()
저 같은경우에는 주소 및 파일명을
C:/programing/python/data/ex_memo.txt 라고 설정 했지만, 파일명만 ex_memo.txt 처럼 써도 상관없습니다.
파일명만 쓴 경우에는 코드파일에 같은 디렉토리(폴더) 안에 .txt 파일이 저장이 됩니다.
open() 함수 두번째 인자값으로 w 를 넣어주면 write(쓰기) 모드가 됩니다.
만약 파일이 해당 주소에 존재하지 않으면 새롭게 파일을 만들고,
파일이 존재한다면 내용을 덮씌웁니다.
위 코드를 보면 students 라는 List(리스트) 안에 값을 넣어두고,
반복문을 통해 하나씩 꺼내서 .write() 함수를 통해 파일에 입력을 하고 있습니다.
또한 '\n' 을 통해 개행을 해주고있습니다.
이렇게 완료한뒤에 close() 함수를 이용해 파일을 닫아줍니다.
그리고, 해당 폴더에 ex_memo.txt 라는 파일이 있고 열어보시면
김철수
최영
한석규
김태희
라는 글씨가 입력되어 있습니다.
이 형태의 코드를 좀더 간단하게 쓰는 방법이 있습니다.
바로 with문을 사용 하는 방법입니다.
with open('파일 주소 및 이름', 'w 또는 r 또는 a') as f : 수행할 문장...
|
# w: 쓰기 - with 문 사용하기
students = ['김철수', '최영', '한석규', '김태희']
with open('c:/programing/python/data/ex_memo.txt', 'w') as f:
for student in students:
msg = student
f.write(msg+"\n")
위 코드는 첫번째 코드와 동일한 코드 입니다.
2. Read 읽기
아까는 open 함수의 두번째 인자 값으로 w 를 썼지만, 읽기 모드를 사용 할때는 r 을 사용 합니다.
크게 3가지 형태로 파일의 내용을 가져올 수 있습니다.
첫째, 한줄만 가져오기
# r: 읽기 1 - 한줄만 가져옴
f = open('c:/programing/python/data/ex_memo.txt', 'r')
while True:
line = f.readline()
if not line:
break
print(line)
f.close()
readline() 함수를 사용 하는 방법입니다.
readline() 함수를 이용하면, 첫째줄부터 한줄씩 가져오는 역할을 합니다.
좀 더 쉽게 얘기를 한다면 첫번째 루프에서(while문) 김철수를 가져오고, 그다음 루프에서 최영을 가져옵니다.
이렇게 김태희 까지 모든 값을 가져온뒤, 더 이상 가져올 값이 없다면 if문 조건문에 걸려 break로 반복문을 빠져나오게 됩니다.
(break에 대해 알아보기 >> 2018/01/05 - [Language/Python] - Python :: 반복문! while에 대해 알아보자 #8 )
두번째, 여러줄 가져오기
# r: 읽기 2 - 한줄씩 List 형태로 가져옴
f = open('c:/programing/python/data/ex_memo.txt', 'r')
lines = f.readlines()
print(lines) # ['김철수\n', '최영\n', '한석규\n', '김태희\n']
print(type(lines)) # <class 'list'>
for line in lines:
print(line)
f.close()
얼핏보면 readline() 과 비슷 할 수 있지만, 자세히 보면 뒤에 s 가 붙어있습니다.
함수 이름만 보더라도 복수형태를 가진다는것을 알 수 있습니다.
readlines() 함수를 이용하면,
첫번째 줄부터 마지막줄까지 리스트(List) 형태로 값을 가져옵니다.
위 코드같은경우에는 lines 라는 변수에 ['김철수\n', ;최영\n', '한석규\n', '김태희\n'] 라는 값이 들어가 있습니다.
반복문을 통해 리스트값을 하나씩 꺼내서 출력하면
김철수
최영
한석규
김태희
라는 값이 나오는 것을 확인 할 수 있습니다.
세번째, 내용 전체 가져오기
# r: 읽기 3 - 내용 전체 다 가져옴
f = open('C:/programing/python/data/ex_memo.txt', 'r')
memo = f.read()
print(memo)
f.close()
마지막으로 read() 함수에 대해 알아보겠습니다.
매우 간단합니다.
read() 함수를 이용하면, 파일에 적힌 모든 내용을 가져옵니다.
3. Add 추가하기
이번엔 open() 함수에 'a'를 써주시면 됩니다.
write 모드랑 비슷해 보일수 있습니다.
큰 차이점은 파일안의 내용을 덮어씌우는것이 아니라, 파일의 마지막 내용에 새로운 내용을 이어서 추가합니다.
# a:추가
with open('C:/programing/python/data/ex_memo.txt','a') as f:
f.write('추가인원 : hongku')
위 코드를 실행하면
파일안에
김철수
최영
한석규
김태희
추가인원 : hongku
라고 입력되어 있는것을 확인 할 수 있습니다.
다음글..
2018/01/10 - [Language/Python] - Python :: 예외 처리에 대해 알아보자 (try ~ except) #12
'Language > Python' 카테고리의 다른 글
Python :: from import 에 대해 알아보자 #15 (0) | 2018.01.11 |
---|---|
Python :: 모듈(module)과 패키지(package)에 대해 알아보자 #14 (0) | 2018.01.11 |
Python :: 파이썬 예외 발생시키기 (raise Exception) #13 (0) | 2018.01.10 |
Python :: 예외 처리에 대해 알아보자 (try ~ except) #12 (0) | 2018.01.10 |
Python :: 파이썬 설치하기 (0) | 2018.01.09 |
최근댓글