Login

Search

Learn 🇰🇷
2022.10.21 19:16

6.1 텍스트 파일

Views 58 Votes 0 Comment 0

이번 시간에는 파일을 다루는 방법을 알아보겠습니다. 파일명을 바꾼다거나, 파일을 복사하고, 지우는 일들은 지난 시간에 살펴본 os 모듈이나, shutil이라는 모듈을 사용하면 되죠. 지금 배울 것은 그런 것이 아니라 파일의 내용을 읽고, 쓰는 방법입니다.

 

파일을 다룰 수 있게 되면 프로그램과 데이터를 따로 관리할 수 있지요. 만약 주소록 프로그램을 만든다면 연락처를 담은 데이터 파일을 따로 만들어두었다가, 새 친구가 생길 때마다 그 데이터 파일에 연락처를 추가해 주면 되겠죠?

먼저 메모장으로 텍스트 파일 하나를 만들어봅시다.

 

Programming is fun.
Very fun!

You have to do it yourself...
 

 

각자 파이썬 스크립트를 저장하기 위한 폴더를 만들어두셨을 거예요. 거기에다가 Python_for_Fun.txt와 같은 이름으로 저장해주세요. 그리고나서 아래 예제를 따라해보세요. 폴더와 파일의 이름은 각자 지으신 대로 써주시구요.

>>> f = open('C:\\python_newbie\\Python_for_Fun.txt')
>>> f.read()
'Programming is fun.\nVery fun!\n\nYou have to do it yourself.'

  

 

파일을 열어서 f라는 이름을 붙여주고 다시 그것을 읽었죠? 여러분도 잘 읽어지나요?

그런데, 좀 이상한 것이 있죠? 아까 파일을 작성할 때 줄을 바꿔가면서 썼던 것이 모두 한 줄에 나옵니다. 쓴 적이 없는 글자도 끼어 있구요.

잘 보면 줄을 바꾼 곳마다 '\n'이 들어있다는 것을 알 수 있지요. '\n'은 다음과 같이 문자열을 출력할 때 '줄 바꿈'을 의미한답니다.

>>> print('hel~\nlo')
hel
lo 

  

 

우리가 메모장에서 텍스트 파일을 작성할 때에도 줄을 바꿀 때마다 이런 개행 문자가 포함되었던 것이지요. 위에서는 f.read() 함수가 돌려준 문자열을 그대로 보았기 때문에 우리가 개행 문자도 볼 수 있었던 것이고, 이 문자열을 print 하면 정상적으로 줄 넘김이 된 상태로 보입니다.

>>> buffer = f.read()
>>> print(buffer)
Programming is fun.
Very fun!

You have to do it yourself...

  

 

이번엔 파일에 글을 써볼까요?

>>> letter = open('C:\\python_newbie\\letter.txt', 'w') 
>>> letter.write('Dear Father,')                      
>>> letter.close()  

  

 

이번엔 파일명 뒤에 'w'라고 써주었죠? 아까 파일의 데이터를 읽기만 했을 때와는 달리, 파일에 데이터를 쓰려고 할 때는 미리 '파일에 데이터를 쓰겠다'는 사실을 알려줄 필요가 있기 때문입니다.

그 다음에 몇 자 적어주고 나서 파일을 닫았습니다.

이제 해당 폴더를 보시면 letter.txt 파일이 있구요, 그걸 메모장으로 열어보시면 파이썬으로 써준 글자가 고스란히 적혀있을 거예요. 훌륭하죠?

만약, 파일에 데이터를 쓴 다음에 close()로 닫아주지 않았으면 메모장으로 봐도 아무 글자도 없을 거예요. 그러니 꼬옥~ 닫아주셔야 해요~.

예리하신 분들은 그 전의 예제에서 파일을 읽었을 때는 왜 안 닫았는지 궁금해 하시겠죠? 닫아주면 좋답니다.^^ 하지만 우리가 잊어버리더라도 파일이 더 이상 필요 없으면 파이썬이 알아서 닫아준다고 하네요. 참 편하죠?

혹시 letter.txt가 아니라 python.txt 파일에다가 'Dear Father'라고 쓰신 분 계신가요? 분명히 계실 것 같은데…

원래 들어있던 내용이 다 날아갔죠? 시키는대로 안 하니까 그렇죠. 히히히

하지만, 전 시키는 대로만 하는 사람은 싫어합니다. 잘 하셨어요.

파일에 데이터가 원래 들어있을 때 'w' 모드로 파일을 열면 원래 있던 데이터가 없어져버린답니다. 파일에 들어있는 데이터를 지우지 않고 내용을 추가하려면 'a+' 모드를 지정해줘야 하죠.

>>> letter = open('C:\\python_newbie\\letter.txt', 'a+')
>>> letter.write('\n\nHow are you?')
>>> letter.close()

  

 

이제 letter를 다시 열어보시면 제대로 되어있을 거예요.


List of Articles
No. Subject Author Date Views
Notice Learn What is Python? admin 2024.10.19 81
44 Learn 🇰🇷 1.1 파이썬 맛보기 admin 2022.08.10 79
43 Learn 🇰🇷 1.2 변수 admin 2022.08.13 77
42 Learn 🇰🇷 1.3 리스트 admin 2022.08.13 63
41 Learn 🇰🇷 1.4 인터프리터와 컴파일러 admin 2022.08.19 71
40 Learn 🇰🇷 2.1 while을 사용하는 반복문 admin 2022.08.23 57
39 Learn 🇰🇷 2.2 조건문 (if-elif-else) admin 2022.08.23 63
38 Learn 🇰🇷 2.3 for를 사용하는 반복문 admin 2022.08.24 55
37 Learn 🇰🇷 3.1 함수 admin 2022.09.01 71
36 Learn 🇰🇷 3.2 반환(return)문 admin 2022.09.10 61
35 Learn 🇰🇷 3.3 지역변수, 전역변수 admin 2022.09.15 63
34 Learn 🇰🇷 3.4 람다(lambda) admin 2022.09.16 60
33 Learn 🇰🇷 4.1 자료형 admin 2022.09.16 60
32 Learn 🇰🇷 4.2 문자열과 리스트 admin 2022.09.16 58
31 Learn 🇰🇷 4.3 튜플(tuple) admin 2022.09.21 61
30 Learn 🇰🇷 4.4 딕셔너리(dict) admin 2022.09.30 61
29 Learn 🇰🇷 4.5 세트(set) admin 2022.10.02 58
28 Learn 🇰🇷 5.1 모듈이란 admin 2022.10.03 58
27 Learn 🇰🇷 5.2 모듈 가져오기(import) admin 2022.10.07 55
26 Learn 🇰🇷 5.3 여러 가지 모듈 admin 2022.10.15 56
» Learn 🇰🇷 6.1 텍스트 파일 admin 2022.10.21 58
Board Pagination Prev 1 2 3 Next
/ 3