파이썬 코드를 사용하여 텍스트 파일, 바이너리 파일을 읽어오거나 출력할 수수 있습니다.
open 함수
파이썬 open 함수에 여러 파라미터가 있으며 다음은 open 함수의 예입니다.
open(filename, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
filename : 파일 이름
mode: 입력이면 r (기본값), 출력이면 w
기타 mode 옵션
'x' 텍스트 파일 쓰기, 파일이 없으면 에러 메시지
'a' 기존의 텍스트 파일 마지막에 첨부
'rb' binary 파일 읽기
'wb' binary 파일 쓰기
'w+b' binary 파일 읽고 쓰기
'xb' binary 파일 쓰기, 파일이 없으면 에러 메시지
'ab' binary 파일 마지막에 첨부
open 함수를 사용하여 a.txt 파일 쓰기
afile=open('K:\python\\a.txt', 'w')
텍스트 파일 읽어오기
open 함수의 옵션이 텍스트 모드이면 파일에서 string을 읽어오거나 출력할 수 있습니다.
open 함수의 옵션이 바이너리 모드 (‘rb’ (읽어올 때) 또는 ‘wb’ 출력할 때) byte string을 입출력할 수 있습니다.
다음 b.txt 파일을 open 함수를 이용하여 읽어오려고 합니다.
bfile=open('K:\python\\b.txt')
data=bfile.read()
print(data)
위의 open함수에 mode 옵션이 지정되지 않으면 기본값인 ‘r’이 사용됩니다.
bfile.read()는 파일의 내용 전체를 문자열로 바꿔줍니다.
bfile.close()
파일 읽기가 끝나면 반드시 .close 함수를 사용하여 파일을 닫아줘야 합니다.
텍스트 파일로부터 한 줄을 읽어오려면 .readline 방법을 사용할 수 있습니다.
bfile=open('K:\python\\b.txt')
data=bfile.readline()
print(data)
bfile.close()
readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려줍니다.
bfile=open('K:\python\\b.txt')
data=bfile.readlines()
data[0]
data[1]
bfile.close()
Iteration을 이용해 읽기
bfile=open('K:\python\\b.txt')
for line in bfile.readlines():
print(line)
for 문을 이용하여 b.txt 파일의 각 줄을 읽어옵니다.
파일 쓰기
cout = open('K:\python\\c.txt', 'w')
cout.write('John')
cout.close()
c.txt 파일에 John을 씁니다.
cout = open('K:\python\\c.txt', 'w')
cout.write('Jane')
cout.close()
c.txt 파일에 Jane을 씁니다.
새로운 라인을 입력할 때
\n 을 사용합니다.
cout = open('K:\python\\c.txt', 'w')
cout.write('John\n')
cout.write('Jane')
cout.close()
c.txt 파일 첫 번째 줄에 John을 쓰고 줄을 바꾸어 Jane을 씁니다.
cout = open('K:\python\\c.txt', 'w')
cout.write('John')
cout.write('Jane')
cout.close()
\n을 사용해 줄 바꾸기를 하지 않으면 JohnJane이 첫 번째 줄에 같이 쓰입니다.
binary 파일을 읽을 때 ‘rb’ 사용하며, byte string을 불러옵니다. 8byte 읽기
ccc =open('K:\python\\test.png', 'rb')
ccc.read(8)
오늘은 파이썬 파일 출력과 입력하는 것에 대해 알아봤습니다.
'초보 코딩 배우기' 카테고리의 다른 글
파이썬 time 모듈 (14) | 2021.06.01 |
---|---|
파이썬 string 포멧 출력하기 (12) | 2021.05.24 |
파이썬 모듈 (4) | 2021.05.18 |
파이썬 while loop (6) | 2021.05.10 |
파이썬 인덱싱과 슬라이싱 (11) | 2021.04.26 |
파이썬 함수 (19) | 2021.04.19 |
파이썬 dictionary (14) | 2021.04.11 |
파이썬 for loop (6) | 2021.04.04 |
댓글