AboutPython

[파이썬] writelines()

scone 2022. 5. 10. 03:06

[writelines()]

  • 반복 가능한 자료형의 데이터를 파일에 쓸 수 있다.
  • 리스트 또는 튜플 데이터를 파일에 쓰기 위한 함수이다.

 

  • f.write()를 쓰면
from url import *
import random

with open(url()+'writlines실습.txt','a') as f:
    randN = random.sample(range(1,46),7)
    f.write('\n')
    for i in randN:
        f.write(f'{i} ')

with open(url()+'writlines실습.txt','r') as f:
    print(f.read())
'''

38 40 35 25 22 43 7
22 44 41 20 33 2 15
'''

다음과 같이 리스트의 요소를 f.write()로 쓰려면 반복문을 돌려 요소 하나하나를 가져다가 적어야한다.

 

  • f.writelines() 를 쓰면
with open(url()+'writlines실습.txt','a') as f:
    randN = random.sample(range(1,46),7)
    f.writelines(f'{randN}\n')

with open(url()+'writlines실습.txt','r') as f:
    print(f.read())

for문 돌릴 필요 없이 그냥 리스트를 str 형태로 안에 넣어주기만 하면 된다.


[실습1] writelines()를 쓰되, 요소 사이에 개행을 넣어서 써주자. 

with open(url()+'writlines실습.txt','w') as f:
    randN = random.sample(range(1,46),7)
    f.writelines(str(item)+'\n' for item in randN)

with open(url()+'writlines실습.txt','r') as f:
    print(f.read())
'''
13
45
30
1
2
6
3
'''

comprehension을 다음과 같이 활용하여 요소 사이에 필요한 것들을 넣어줄 수 있다.


[실습2] 딕셔너리에 저장된 과목별 점수를 파일에 저장하는 코드를 작성하자.

from url import *

scoreDic = {'kor':85, 'eng':90, 'mat':92, 'sci':79, 'his':82}

with open(url()+'과목별점수.txt','w') as f :
    f.writelines(key+'\t: '+ str(scoreDic[key])+'\n' for key in scoreDic.keys())

키 값들을 뽑아낸 후 키값과 value 값을 같이 다음과 같이 뽑아내주었다.


[실습3] print함수를 이용해 리스트 또는 튜플, 딕셔너리 등을 있는 그대로 텍스트에 써줄 수 있다. 

from url import *
scoreDic = {'kor':85, 'eng':90, 'mat':92, 'sci':79, 'his':82}

with open(url()+'과목별점수.txt','w') as f :
    print(scoreDic, file=f)