파이썬 파일 입출력
폴더 이동하기와 더불어서 파일의 입출력이 중요한 이유
파이썬으로 작업한 결과물을 눈으로 곧바로 확인이 가능하다
처음 프로그래밍을 배울 때 만드는 파일 :txtcsv파일
일반 컴퓨터에서는 파일 내용을 확인하려면 파일을 더블 클릭하기만 하면 되는데
이는 특정 폴더에서 특정 파일을 특정한 목적으로 불러오는 여러 단계의 과정이 포함되어 있다.
파일 열기 open() 함수
파일 객체 = open('파일 이름', '파일 열기 모드')open() 함수 예시
a.txt 라는 새 파일을 '쓰기'모드로 생성하기
>>> f = open('a.txt', 'w')f 객체 이름 지정하는 이유
그냥 open() 함수로 파일을 열면 될 것 같은데 f라는 객체(다른 이름도 가능)에 왜 넣을까?
특정 객체 이름을 지정하지 않고 그냥 open() 함수 로 명령을 내려도 파일은 열린다
파일 작업을 할 때에는 폴더를 같이 띄어 놓고 파일이 있는지 없는지를 수시로 확인하면 좋다
oprn('a.txt', 'w')를 실행하면 현재 위치한 폴더에 a.txt 파일이 생성된 것을 확인할 수 있다
이 상태에서 a.txt 파일에 또 다른 명령어를 넣으려면
open('a.txt', 'w').write('abc') 와 같이 복잡한 코드를 만들어야 되는데
# a.txt 파일에 abc라는 문자열을 쓴다
>>> open('a.txt', 'w').write('abc')
# 3 : 입력한 문자의 개수가 출력된다앞으로 a.txt 파일을 사용해 여러 작업을 할 때마다 긴 명령어로 파일을 여는 것을 불편하므로
f와 같이 간단한 이름의 객체에 파일을 여는 명령을 미리 저장하고 사용하는 것이다
파일 열기 모드
| 파일 열기 모드 | 의미 | 
|---|---|
| w | 파일에 내용을 새로 쓸 때 사용한다 | 
| r | 파일 내용을 읽을 때 사용한다 | 
| a | 파일에 내용을 추가할 때 사용한다 | 
파일 쓰기 vs 읽기
쓴다 : 파일을 새로 만들어서 쓴다
읽다 : '이미 그 파일이 있다'는 것을 전제로 한다
그러므로 해당 경로에 있는 파일 이름을 정확하게 입력해야 명령어가 작동되며
파일 이름을 잘못 입력하면 오류가 발생한다
1. 파일 쓰기 모드 w
가장 간단하게 글을 쓰는 방법은 write() 함수 사용
이미 a.txt 파일을 쓰기(w)모드로 열어서  f라는 객체에 지정했으므로
f에 바로 명령어를 입력해주면 아무 글이나 쓸 수 있다
>>> f = open('a.txt', 'w')
>>> f = write('나는 오늘 학교에 갔다.')
13  # 정상적으로 입력됨, 입력한 문자의 개수
>>> f.close()  # 파일 닫기를 꼭 해줘야 한다2. 파일 읽기 모드 r
- 읽기 모드일 때 내릴 수 있는 여러 명령 중 파일 내용을 읽어주는 read() 함수사용
>>> f = open('a.txt', 'r')
>>> f.read()
'나는 오늘 학교에 갔다.'
>>> f.read()
``- f.read()한 번 vs 두 번
 처음- f.read()를 입력하면- '나는 오늘 학교에 갔다.'라는 내용이 나오지만
 두 번째로- f.read()를 했을 때에는
 커서 위치가 파일의 가장 끝에 있어서 더 이상 읽을 내용이 없어서 빈 문자열로 나온다
커서의 위치 찾기
seek()사용
예) 문서의 가장 처음으로 가고 싶다면f.seek(0)명령
>>> f.seek(0)
0
>>> f.read()
'나는 오늘 학교에 갔다.'
>>> f.close()- 실행 폴더에 없는 파일을 읽기 모드로 열려고 하면 오류가 발생한다
>>> f = open('b.txt', 'r')
Tracback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    f = open('b.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'b.txt'- f.read()로 읽는 내용은 문자열- str형태로 저장된다 (리턴된다)
 →- f.read()를 통해 읽은 내용을 다른 객체에 저장한다면 문자열을 가공할 때 쓰는 모든 기능을 편리하게 활용 가능
>>> f= open('a.txt', 'r') #  a.txt 파일을 읽기 모드로 열기
>>> diary = f.read() # f.read() 결과값을 diary로 저장
>>> print(diary) # 저장된 값이 문자열이라 출력 가능함
나는 오늘 학교에 갔다
>>> print(diary[:5]) # 내용의 일부만 슬라이싱을 해서 출력할 수도 있다
나는 오늘
>> f.close() # 파일을 다 쓴 후 닫아준다3. 파일 내용 추가모드 a
모든 파일을 읽기와 쓰기로 불러내고 출력하는 것이 가능하니,
추가는 굳이 필요할까 싶을텐데
간편하게 파일 맨 마지막에 우리가 원하는 내용을 쉽게 추가할 때는 추가모드를 사용하는 것이 편리하다
>>> f = open('a.txt', 'a')
>>> f.write(' 학교에 가지 않을 날이 올까?')
16
>>> f.close()
>>> f = open('a.txt', 'r')
>>> f.read()
'나는 오늘 학교에 갔다. 학교에 가지 않을 날이 올까?'
>>> f.close()파일 닫기
파일을 열었다면 파일을 다시 꼭 닫아야 한다
1. 파일을 닫지 않은 상태에서 연습했던 파일을 지우려고 시도하면 파일을 지울 수 없다는 메시지가 뜬다
2. 닫지 않은 상태에서 읽기 모드로 다시 여는 등 다른 작업을 하려고 하면 오류가 발생한다
3. 정상적으로 파일이 닫히면 >>> 만 다시 나타난다
>>> f = open('a.txt', 'w')
>>> f.close()
>>>Author And Source
이 문제에 관하여(파이썬 파일 입출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@beanlove97/파이썬-파일-입출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)