파일 읽고 쓰기

매일 공부(ML)·2021년 11월 6일
0

Python

목록 보기
3/38

Preview

  • 파일을 새로 만든 후 프로그램이 만든 결괏값을 새 파일에 적고, 적은 내용 읽고 추가하는 방식을 알아볼 것이다.

파일 생성하기

  1. 파일 생성 코드
f = open("새파일.txt", 'w')# 파일 생성을 위해 open함수 사용. open("파일 이름", "파일 열기 모드")  --> 결과값으로 파일 객체를 돌려줌..

f. close() # 생략을 해도 되는 문장. 열려 있는 파일 객체 닫아줌.근데 쓰는 것이 좋음
  1. 파일 열기 모드
  • r : 읽기모드 - 파일 읽기만 사용

  • w : 쓰기모드 - 파일 내용 쓸 때 사용

    	i) 해당 파일이 이미 존재, 내용 초기화 

    ii) 해당 파일이 존재 X, 새로운 파일 생성

  • a: 추가모드 - 원래 있던 값 유지하면서 파일 마지막에 새로운 내용 추가 시 사용

  1. 파일 경로와 슬래시(/)
  • /, \: 파일 경로 표시할 때 사용

  • 문자열 앞에 r문자 덧붙여 사용

파일 -> 쓰기모드 -> 출력값

  1. Code로 보기
f = open("C:/doit/새파일.txt", 'w')

for i in range(1,11):
	data =  "%d번째 줄입니다.\n" %i
    
    f.write(data)# 파일에 결과값을 적는 방법

f.close()

외부 파일 읽는 방법

  1. readline 함수 이용

:읽은 줄이 없으면 빈문자열(") 리턴.

: 파일의 가장 첫 번째 줄을 읽어 출력

*한 줄 읽기 코드

f = open("C:/doit/새파일.txt", 'r')
line =  f.readline()
print(line)
f.close()

*전체 줄 읽기 코드

f = open("C:/doit/새파일.txt", 'r')
while True: # 무한 루프
    line = f.readline()
    if not line: break
    print(line)
f.close()

*입력한 내용 출력

while True:
    data = input()
    if not data: break
    print(data)
  1. readlines함수 사용하기

: 모든 줄을 읽어서 각 줄의 요소로 갖는 리스트로 돌려줌.

f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line) #  ["1 번째 줄입니다.\n", "2 번째 줄입니다.\n", ..., "10 번째 줄입니다.\n"]
f.close()

*줄 바꿈 문자(\n) 제거

f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    line = line.strip()  줄 바꿈 문자 제거
    print(line)
f.close()
  1. read함수 사용하기

: 파일의 내용 전체를 문자열로 돌려줌

f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close()

파일에 새로운 내용 추가

:'a'로 파일을 열고 'write'를 사용해 기존 파일에 추가로 적기

--> 원래 있던 내용 뒤에 새로운 내용 추가

f = open("C:/doit/새파일.txt",'a')
for i in range(11, 20):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

With문과 사용

: 파일 열고 닫기를 자동화 처리 해준다.

: with블록에서 벗어나면 열린파일 자동으로 close.

with open("foo.txt", "w") as f:
    f.write("Life is too short, you need python")
  • type : 뒤에 적힌 파일을 인수로 받아 내용 출력

  • sys: 매개변수를 직접 줄 수 있다.

import sys

args = sys.argv[1:]
for i in args: #인수를 for문으로 사용해 차례대로 하나씩 출력
    print(i)
    

*upper() :소문자를 대문자로 바꾼다.

import sys
args = sys.argv[1:]
for i in args:
    print(i.upper(), end=' ')
profile
성장을 도울 아카이빙 블로그

0개의 댓글