본문 바로가기
Python

Python 파일 입력, 출력, readline(), readlines(), 한줄씩, 전체 다

by 오렌지마끼야또 2022. 6. 13.
728x90
반응형

 

 

 

 

 

w 로 open 할 경우 파일이 없다면 새로운 파일을 만들고

파일이 존재한다면 기존 내용을 다 지우고 다시 작성한다.

지우지 않고 이어서 작성하는 것은 a

 

 

f = open("새파일.txt", 'w')

for i in range(1,11) :
    data = f'{i}번째 줄입니다.\n'
    f.write(data)

f.close()

--------------------------------------------------------

with open("새파일.txt", 'w') as f:
    for i in range(1,11) :
        data = f'{i}번째 줄입니다.\n'
        f.write(data)

with 명령어를 사용하면 간결해지고 자동으로 close 해준다.

 

 

 

 

f = open("새파일.txt", 'r')

while True :
    line = f.readline()
    if not line : break
    print(line, end='')
    
f.close

-----

1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.

readline() 은 한줄씩 읽어서 string으로 가져온다.

 

 

 

sample.txt

70
60
55
75
95
90
80
80
85
100

 

with open("sample.txt", 'r') as f1:
    lines = f1.readlines()
    sum = 0
    for data in lines:
        sum += int(data)
    avg = sum / len(lines)
    with open("result.txt", 'w') as f2:
        f2.write(str(avg))

sample.txt 를 읽어서 평균값을 result.txt 에 쓰기

readlines() 는 모든 줄을 list 로 가져온다.

-> lines = ['70\n', '60\n', '55\n', '75\n', '95\n', '90\n', '80\n', '80\n', '85\n', '100']

result.txt

79.0

코드 마지막줄에 f2.write(avg) 로 쓰면

TypeError: write() argument must be str, not float 에러가 뜨기때문에

f2.write(str(avg)) 로 type casting 한다.

 

 

 

 

728x90
반응형

'Python' 카테고리의 다른 글

Python 패키지  (0) 2022.06.18
Python 모듈, __name__ == '__main__'  (0) 2022.06.13
Python 숫자 나누기 특징  (0) 2022.06.13
Python list 관련  (0) 2022.06.13
Python print 방식  (0) 2022.06.13

댓글