Python #17 l 파이썬 프로그램의 입력과 출력_파일 읽고 쓰기

신승호·2021년 3월 4일
0

Python

목록 보기
18/35
post-custom-banner

List

  • 파이썬 프로그램의 입력과 출력
    • 함수
    • 사용자 입력과 출력
    • 파일 읽고 쓰기
    • 연습문제

파이썬 프로그램의 입력과 출력_파일 읽고 쓰기


파일 생성하기

파일을 생성한 후 실행하는 함수

  • 파일 객체 = open('파일 이름',"파일열기모드) : 파일 이름으로 파일이 하나 생성되고 파일열기모드로 읽기,쓰기,추가 모드 로 하나 선택해서 실행한다.
  • 파일 객체.close() : 열린 파일 객채를 해당 함수로 닫아줘라
f = open("새파일.txt", 'w') 	# 이 때 "새파일" 이라는 제목으로 파일이 하나 생성됨
f.close()

파일 열기 모드

  • r : read/읽기모드 - 파일을 읽기만 할 때
  • w : write/쓰기모드 - 파일을 내용에 쓸 때, 이미 같은 이름으로 파일이 존재할 경우 기존내용이 모두 사라지고 존재하지 않으면 새로운 파일이 생성된다.
  • a : add/추가모드 - 파일의 마지막에 새로운 내용을 추가할 때
  • 파일을 지정된 디렉터리에 생성하고 싶을 때
f = open("C:/doit/새파일.txt", 'w') 	# "새파일" 앞에 생성시키고싶은 디렉터리를 넣어두면 거기에 생성된다.
f.close()

파일을 쓰기 모드로 열어 출력값 적기

파일을 활용하여 출력값 저장하는 법

  • 기존 사용해왔던 출력 방법
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    print(data)
  • 출력 값을 파일에 넣어 놓는 방법
    • open(), write(), close() 사용 필요
f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    f.write(data) # print() 대신 write() 사용
f.close()

***위의 결과값이 "새파일"내 저장되어 있다. 

프로그램의 외부에 저장된 파일을 끌어와 읽는 방법

  • readline() : 파일의 첫번째 줄을 끌어와출력 한다.
# readline_test.py
f = open("C:/doit/새파일.txt", 'r') 	# 먼저 파일을 읽기 모드로 연다
line = f.readline() 			# 파일의 첫번째 줄을 출력한다.
print(line)
f.close()

1번째 줄입니다. # 출력
  • readline()을 가지고 파일의 모든 줄을 읽게 하고 싶다면 무한루프를 사용
# readline_all.py
f = open("C:/doit/새파일.txt", 'r') 	# 먼저 파일을 읽기 모드로 연다 
while True: # 무한 루프 사용
    line = f.readline() 		# 무한 루프이기 때문에 파일의 첫번째 줄 부터 끝까지 계속 끌어와서 출력
    if not line: break 			# 더이상 출력할 줄이 없으면 빠져나간다
    print(line)
f.close()
  • readlines() : 파일의 모든줄을 읽게하는 함수
f = open("C:/doit/새파일.txt", 'r') 	# 먼저 파일을 읽기 모드로 연다 
lines = f.readlines() 			# 파일 전체를 끌어와 읽는다
for line in lines:
    print(line)
f.close()
f = open("새파일.txt",'r')
lines = f.readlines()
print(lines)
f.close

['신\n', '승\n', '호\n', '천\n', '재\n', '당\n', '^^\n']

***전체 읽어주긴 하는데 문장그냥 일렬로 쭉읽음 위에꺼는 한줄씩 딱딱 읽어주는데 for문을 사용하는 이유다.
  • read() :파일 내용 전체를 문자열로 돌려줌 'readlines()` for문을 사용한 것과 동일하게 끌어와서 읽는다.
f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close() 

파일에 새로운 내용 추가하기

추가모드 사용

  • 추가모드 a를 사용하면 기존 값을 유지하며 값을 추가할 수 있다.
f = open("C:/doit/새파일.txt",'a')
for i in range(11, 20):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

with문과 함께 사용하기

  • with문을 사용하면 f.close()를 사용하여 따로 파일을 닫아줄 필요없다.
  • with open("파일이름.txt","파일열기모드") as f 를 사용
f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.close()
with open("foo.txt", "w") as f: # with 와 as 를 사용
    f.write("Life is too short, you need python")

sys모듈로 매개변수 주기

명령 프롬포트(DOS)

  • 명령 프롬프트 명령어 [인수1 인수2 ...] : 바로 뒤에 적힌 파일이름을 인수로 받아 그 내용을 출력함.
C:\> type a.txt

sys 모듈

  • import sys
#sys1.py
import sys

args = sys.argv[1:] 		# argv[1]~ 를 출력하라구
for i in args: 			# 입력받은 인수를 for 문을 사용해 차례대로 출력
    print(i)
***위 프로그램을 `C:\doit`에 저장하고 매개변수를 주어서 실행하는 법
C:\doit>python sys1.py aaa bbb ccc

***중요
argv[0] = sys1.py 
argv[1] = aaa
argv[2] = bbb
argv[3] = ccc
*** 위를 실행시키면 아래 같이 나옴
aaa
bbb
ccc
profile
신승홉니다
post-custom-banner

0개의 댓글