파이썬 파일을 열고 읽기에 관한 선행 내용입니다
[Python/Python Study] - Python Basic - 파이썬 파일처리하기(1) Read, Write
파이썬을 이용해 파일을 열고, 읽기가 가능하다면 "쓰기"도 가능하겠죠!
이번 포스팅에서는 파이썬 쓰기에 관해서 작성해보겠습니다 :)
파일 쓰기(open, with)
기본 토대가 되는 open 과정은 같습니다. open으로 파일의 경로와 위치를 지정 해 줍니다.
단, 지금부터 파일을 작성 할 것이니까, 파일 이름은 존재 하지 않는 것이 좋습니다!
이유는 뒤에있는 'w' 때문입니다!
파일을 작성하는데에 있어서 옵션은, 'w'와 'a'가 있습니다.
w는 파일을 생성하고 내용을 작성한다 라는 의미를 갖고 있습니다. 파일을 생성하기 때문에 기존에 이름이 같은 파일은 덮어 쓰게 되는데요, 때문에 기존의 파일이 지워지고 작성한 내용이 올라가게 됩니다.
r은 파일이 없다면 생성하고, 있다면 뒤에서부터 추가 해 준다는 의미입니다.
작성하는 파일의 특성에 따라서 잘 선택하고 사용 해 주어야 합니다 :)
파일을 작성 할 것이기 때문에 read 보다는 write가 어울리겠죠~?
백문이불여일견, 백문이여일코.......라는말은 없지만 한번 해보겠습니다.
file write example with 'w'
# 예제 1
with open('resource/text1.txt','w') as f:
f.write("woolbro dev file!!!")
resource 폴더 아래에 'text1.txt'라는 파일을 생성한다는 의미입니다.
with 구문에서 f로 인식을 할 것이고, f.write를 통해서 "woolbro dev file!!!" 를 작성 할 것이라는 얘기가 되겠습니다.
실제로 저 파이썬 코드를 실행 시켜 본다면
resource폴더 아래에 text1.txt가 생성이 되고, 그 내용은 "woolbro dev file!!!" 이 될 것입니다.
'w' 라는 옵션이 정말로 덮어쓰기 인지 확인 해 보려면, f.write의 내용을 바꾸고 작성 해보면 파일의 내용이 추가된 것이 아니라 수정 된 것을 볼 수 있습니다.
file write example with 'r'
# 예제 2
with open('resource/text1.txt','a') as f:
f.write("\n Nice bro~ wool :)")
위와 같이 작성하면, resource 폴더에 있는 text1.txt파일이 있다면 추가하고, 없다면 생성하는 동작을 하게 됩니다.
'w'의 예제와 동시에 실행 시켜본다면, 두 개의 내용이 합쳐져 있는 것을 확인 할 수 있습니다!
아래는 for문과 함께 작성한 "로또번호 생성기" 예제 입니다.
file write example with random package -- Lotto number gen.
random이라는 패키지에서 randint 라는 메서드를 가져옵니다.
resource 폴더 하위에 text2.txt 를 작성 할 것이고, 'w' 옵션을 사용해서 파일을 작성 해 주겠습니다.
# 예제 3
from random import randint
with open('resource/text2.txt','w') as f:
for cnt in range(6):
f.write(str(randint(0,50)))
f.write('\n')
파일 쓰기는 어플리케이션의 로그를 남기는 데에도 사용이 되고 있습니다!
아래의 예제는 파일 변수에 바로 작성 하는 로그 예제입니다.
file log example
로그를 바로 파일에 작성 할 수 있기 때문에 편리한 방법이고 알아두면 좋을 것 같습니다.
실제로 어플리케이션을 실행 할 때에는 로그를 쌓아 두어야 하기 때문에 file 옵션이 'w' 보다는 'a' 가 어울리겠네요 :)
# 예제 로그
with open('resource/log.txt','w') as f:
print('log test 1',file = f)
print('log test 2',file = f)
'Old Branch' 카테고리의 다른 글
Python Basic - 파이썬 에러 및 예외 - 예외처리(2) (0) | 2019.07.04 |
---|---|
Python Basic - 파이썬 에러 및 예외 - 예외처리(1) (0) | 2019.07.03 |
Python Basic - 파이썬 파일처리하기(1) Read, Write (0) | 2019.07.01 |
Java UDP Client Server Program - UDP 프로그래밍 (0) | 2019.06.28 |
Java Socket Server(TCP/IP) 소켓 프로그래밍 (2) | 2019.06.27 |