본문 바로가기
파이썬(Python)/파이썬(Python) 기초

파이썬(Python) 4장 입출력 - 3. 파일 생성 및 읽고 쓰기

by 인생즐겜러 2022. 7. 5.
728x90
반응형

1. 파일 생성

2. 파일에 쓰기

3. 파일 읽기

4. 파일에 내용 추가하기

5. 파일 자동 닫기 (with ~ as ~)

 

 

 

 

 


 

 

 

 

 

1. 파일 생성

 

파일을 생성하는 명령문 구조는 아래와 같다.

 

파일 객체 = open(파일 이름, 파일 열기 모드)

 

파일열기모드 설명
r 읽기모드 - 파일을 읽기만 할 때 사용
w 쓰기모드 - 파일에 내용을 쓸 때 사용
a 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용
b 바이너리 모드로 파일 열기, r w a 와 함께 사용

 

 

 

 

 

f = open("C:/Lee/테스트파일.txt", 'w')
f.close()

 

파일을 쓰기 모드( w ) 로 열면

해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고,

해당 파일이 존재하지 않으면 새로운 파일이 생성된다,

 

디렉토리 설정은 파일의 이름 앞에 위의 예제(C:/Lee/) 처럼 쓰면 된다.

 

.close()는 열려 있는 파일 객체를 닫아 주는 역할.

 

 

 

 

 


 

 

 

 

 

2. 파일에 쓰기

 

1. 모니터 화면에 출력
for i in range(1, 10):
    a = "%d번째 입니다.\n" % i
    print(a)



2. 1의 내용을 파일에 쓰기
newfile = open("C:/Lee/테스트파일.txt", 'w')
for i in range(1, 10):
    a = "%d번째 입니다.\n" % i
    newfile.write(a)					# 반복문의 결과 값을 파일에 쓴다. 
newfile.close()

 

2.

w로 쓰기로 파일을 열면 일단 파일이 생성 된다.

그 후 for문을 실행 시켜 나온 데이터 값들을

. write()를 이용해서 반복적으로 파일에 쓴다. (newfile이라는 변수에 담는다.)

참고로 write() 의 경우, string 자료형만을 받아서 쓴다.

그리고 close()

 

 

 

 

 


 

 

 

 

 

3. 파일 읽기

 

 

 

readline()

 

첫번째 줄부터 한 줄씩 읽어 들이는 함수. 반복문이 없다면 한 줄만 읽어온다.

더 이상 읽을 줄이 없을 경우 빈 문자열('  ')을 리턴.

(  ) 안의 숫자만큼 해당 줄의 글자(공백 포함)를 읽어온다.

 

newfile = open("C:/Lee/테스트파일.txt", 'r')
while True:
    line = newfile.readline()
    if not line: break
    print(line)
newfile.close()

 

더 이상 읽을 줄이 없으면 break를 수행한다.

한 줄 씩 출력할 때 줄 끝에 ' \n ' 문자가 있으므로 빈 줄도 같이 출력된다.
따라서 if not이 없으면 빈 공백이 무한히 출력된다.

 

 

 

 

 

readlines()

 

readline()에 s가 붙은 함수이다. 혼동하지 말 것.

파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트를 반환한다.

 

newfile = open("C:/Lee/테스트파일.txt", 'r')
lines = newfile.readlines()			# 리스트로 반환한 값을 lines에 넣는다.
for line in lines:				# 리스트 요솟값을 하나하나 뽑아서 print
    print(line)
newfile.close()

 

 

 

 

 

※참고 - 줄 바꿈(\n) 문자 제거

위의 예제에서

line = line.strip() 을 추가해주면 줄 바꿈 문자를 제거할 수 있다.

 

newfile = open("C:/Lee/테스트파일.txt", 'r')
lines = newfile.readlines()
for line in lines:
    line = line.strip()  # 줄 끝의 줄 바꿈 문자를 제거한다.
    print(line)
newfile.close()

 

 

 

 

 

read()

 

파일의 내용 전체를 문자열로 반환한다.

반복문이 필요 없다.

 

newfile = open("C:/Lee/테스트파일.txt", 'r')
data = newfile.read()
print(data)
newfile.close()

 

 

 

 

 


 

 

 

 

 

4. 파일에 내용 추가하기

 

원래 있던 값을 유지하면서 단지 새로운 값만 추가할 때 사용한다.

 

newfile = open("C:/Lee/테스트파일.txt",'a')
for i in range(11, 20):
    data = "%d번째입니다.\n" % i
    newfile.write(data)
newfile.close()

 

 

 

 

 


 

 

 

 

 

5. 파일 자동 닫기 (with ~ as ~)

 

기존에는 close()를 이용해 일일히 파일을 닫았지만

with를 사용하면 with구문을 빠져나가는 순간 파일 객체가 자동으로 닫힌다.

 

1. 기존
newfile = open("테스트.txt", 'w')
newfile.write("Life is beatiful")
newfile.close()



2. with 사용
with open("foo.txt", "w") as newfile:
    newfile.write("Life is beatiful")

 

 

 

 

 

728x90
반응형

댓글