dev/Python

[Python]파일 읽고 쓰기

mingracle 2022. 1. 22. 15:10
f = open('a.txt', 'a')
for i in range(11, 20):
    data = "%d번째 줄이다. \n" %i
    f.write(data)
f.close()

1. 파일생성('w')

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

  ※ 파일 열기 모드

    : r (읽기)  - 파일생성시 해당파일이 존재하면 기존 내용이 모두 사라지고(덮어쓰기), 존재하지 않으면 새 파일 생성

     w (쓰기)

     a (추가모드)

f = open("새파일.txt",'w')
f.close()

 

- write함수 (파일에 결과값 적기)

f = open('a.txt', 'w') # write(파일생성) a.txt 파일 객체를 연다
for i in range(1, 11):
    data = "%d번째 줄이다. \n" %i #a.txt에 내용을 기재해준다.
    f.write(data)
f.close()

  print()대신 write를 사용한 것을 볼 수 있다.

  write함수는 모니터 화면 대신 파일에 결과값을 적는 방법이다.

a.txt 파일 생성
a.txt파일 안의 내용

 

프로그램 외부에 저장된 파일 읽기 ('r')

  ① readline함수 사용

    : 파일의 내용을 한줄씩 읽어온다. while문 안에 사용하는 경우 더이상 읽을 줄이 없으면 None을 출력한다.

f = open('a.txt', 'r') #읽는다.
while True:
    li = f.readline()
    if not li: # line이 없으면 반복문 탈출
        break
    print(li)
f.close()

 

  ② readlines함수 사용

    : 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.

f = open('a.txt', 'r')
li = f.readlines() #파일의 모든 줄을 읽어서 반환값 형태가 리스트 형태이다.
print(li)
for i in li:
    print(i)
f.close()

    li는 리스트 ['1번째 줄이다. ', '2번째 줄이다. ', ..., '10번째 줄이다. ']가 된다.
   

  ③ read함수 사용 

    : 파일 내용의 전체를 문자열로 돌려준다.

f = open('a.txt', 'r')
li = f.read() #파일 내용 전체를 문자열로 돌려줌
print(li)
f.close()

 

파일에 새로운 내용 추가('a')

  : 'w'로 파일을 열 때 이미 존재하는 파일을 열면 해당 파일의 내용이 모두 사라지게 된다.

   'a'는 원래 값을 유지하면서 새로운 값을 주가하는 경우에 사용한다.

f = open('a.txt', 'a')
for i in range(11, 20):
    data = "%d번째 줄이다. \n" %i
    f.write(data)
f.close()

  파일의 기존 내용인 "1번째 줄이다. ~ 10번째 줄이다." 뒤에  "11번째 줄이다. ~ 19번째 줄이다." 가 추가된다.

'a'를 이용해 내용 추가

 

 

- f.close()

  : 열려있는 파일 객체를 닫아주는 역할을 한다.

    쓰기모드로 열었던 파일을 닫지않고 다시 사용하려고 하면 오류가 발생하기 때문에

    파이썬 프로그램이 열려있는 파일의 객체를 자동으로 닫아주지만 직접 닫아주는게 좋다. 

 

- with ~ as

  : 파일 사용 후 자동으로 파일 객체를 닫아준다

with open("new.txt", 'w') as f:
	f.write("Life is too short, you need python")