본문 바로가기
Coding/Python

[Python] read, readline, readlines 차이점 & 로또번호(lotto) 생성후 텍스트(.txt)파일로 저장

by 포스트it 2021. 1. 21.
반응형

Python 파일 오픈

파일 모드는 읽기 모드 ('r'), 새로 쓰기 모드 ('w'), 이어 쓰기 모드 ('a')가 있고,

 

'r'은 읽기 전용으로 파일을 오픈합니다. 읽기만 가능하고, 쓰기는 되지 않습니다.

'w' 는 쓰기 모드인데, 파일을 새로 만듭니다. 즉, 동일한 이름의 파일이 있으면 지우고 새로 작성합니다.

'a' 는 쓰기 모드인데, 'w' 와는 다르게 기존 파일에 내용을 이어서 작성합니다.

 

f = open('경로', '모드')

ex) f = open('/home/python/test.txt', 'w')

Python 파일 읽기

(1) readline() - 파일의 한 줄을 가져와 문자열로 반환합니다. 파일 포인터는 그 다음줄로 이동합니다.


(2) readlines() - 파일 내용 전체를 가져와 리스트로 반환합니다. 각 줄은 문자열 형태로 리스트의 요소로 저장됩니다.

예를들어 5줄짜리 파일을 readlines() 로 읽게 되면 문자열 5개를 요소로 갖는 리스트가 반환됩니다.



(3) read() - 파일 내용 전체를 가져와 문자열로 반환합니다.
readlines()와 마찬가지로 파일 내용 전체를 읽고, 파일 내용 전체를 하나의 문자열로 반환합니다.

각각의 줄은 '\n' 문자로 구분됩니다.

f = open('test.txt', 'r')
r = f.readline()
r = f.readlines()
r = f.read()

--------------------
f.write('요소')
f.close()

 

전체적인 흐름은 이렇다.
파일 오픈 후 -> 원하는 방법으로 읽고 -> 읽은 파일로 작업을 한 후 -> 작성해준다 -> 그리고 파일 닫기

EX) 로또번호 생성 후 txt파일로 저장하기

import random

f = open('lotto.txt', 'a')
num = input("횟수를 입력해주세요 :")
for i in range(0, int(num)):
    lotto = random.sample(range (1, 46), 6)
    print(lotto)
    f.write(str(lotto)+'\n')
f.close()

 

728x90
반응형

댓글