반응형

(PYTHON)파이썬 파일 읽기 쓰기

 

파일 생성하고 내용 쓰기 (인코딩 ANSI)

>>>#D:temp 폴더에 "안녕.txt"생성하고 "w"쓰기모드로 "파일쓰기" 변수에 입력 . temp폴더가 없으면 에러
>>> 파일쓰기 = open("D:/temp/안녕.txt", "w")
>>> 파일쓰기.write("안녕 세상아 \n")	#"파일쓰기"변수에 글쓰기.
8
>>> 파일쓰기.write("괴롭다 세상아 \n")	#"파일쓰기"변수에 글쓰기.
9
>>> 파일쓰기.close()	#"파일쓰기"변수 사용완료. 이때 "안녕.txt."에 내용입력 됨..

파일 생성하고 내용 쓰기

 

파일 열기 모드

모드 의미
W 쓰기(write)
R 읽기(read)
A 추가하기(append)

 

 

파일에 내용 추가하기 예제

>>>#추가하기 모드로 "안녕.txt"파일을 열어 "파일추가" 변수에 입력
>>> 파일추가 = open("D:/temp/안녕.txt", "a")
>>> 파일추가.write("그래도 힘내자 세상아 \n")	#내용 추가하기
13
>>> 파일추가.close()	#"파일쓰기"변수 사용 완료

파일에 내용 추가

 

파일의 내용 읽기 (인코딩 ANSI)

>>>>>>#읽기 모드로 "안녕.txt"파일을 열어 "파일읽기" 변수에 입력
>>> 파일읽기 = open("D:/temp/안녕.txt", "r")
>>> for 임의변수 in 파일읽기.readlines() :
	print(임의변수, end="")	#end=""를 안넣으면 print함수가 기본적으로 한줄을 넘겨 빈줄이 들어감

안녕 세상아 
괴롭다 세상아 
그래도 힘내자 세상아 

>>> for 임의변수 in 파일읽기.readlines() :	 # 다시 파일읽기를 하기
	print(임의변수, end="")

	# 아무것도 출력이 되지 않는다. 커서위치가 파일 가장 끝에 있어 더 읽을 내용이 없음
    
>>> 파일읽기.seek(0)	# 커서위치를 제일 앞으로 이동
0
>>> for 임의변수 in 파일읽기.readlines() :	# 다시 파일읽기 하기
	print(임의변수, end="")

	
안녕 세상아
괴롭다 세상아
그래도 힘내자 세상아 	# 내용이 정상 출력된다.
    
>>> 파일읽기.close()	# 파일을 읽은 후 닫아야 한다. 안그러면 파일이 열려있다고 삭제가 안된다.

 

 

한글 파일 오류 해결하기 (인코딩 UTF-8)

D:\temp\utf8.txt 파일에 아래와 같은 내용을 입력하고 UTF-8로 인코딩 저장하였습니다.

>>> utf8읽기 = open("D:/temp/utf8.txt", "r")	# 변수 utf8읽기에 파일을 읽기모드로 열어서 담기
>>> utf8읽기.read()	# utf8 변수를 read로 읽기
Traceback (most recent call last):	# 코덱 에러가 뜸
  File "<pyshell#28>", line 1, in <module>
    utf8읽기.read()
UnicodeDecodeError: 'cp949' codec cant decode byte 0xeb in position 0: illegal multibyte sequence
>>>
>>> utf8읽기.close()	# utf8읽기 변수 close 해주고 끝내기
>>> import codecs	# codecs를 임포트함
>>> utf8읽기 = codecs.open("D:/temp/utf8.txt", "r", "utf-8")	# codecs.open으로 열고 마지막에 utf-8 코덱임을 적음
>>> utf8읽기.read()
'나는 인코딩 utf-8이다.\r\n나는 코덱없이 파이썬에서 읽으면 에러난다.'	# 정상출력
>>> utf8읽기.close()	

 

(PYTHON)파이썬 전체보기

 

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 예외 처리  (0) 2020.08.11
(PYTHON)파이썬 딕셔너리 Dictionary  (0) 2020.08.09
(PYTHON)파이썬 튜플 tuple  (0) 2020.08.09