Coding/Python

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

포스트it 2021. 1. 21. 14:20
728x90
반응형

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
반응형