점프 투 파이썬 - 사용자 입력과 출력, 파일 읽고 쓰기
Language/Python

점프 투 파이썬 - 사용자 입력과 출력, 파일 읽고 쓰기

뉴비뉴 2019. 7. 12.

input의 사용

>>> a = input()
Life is too short, you need python
>>> a
'Life is too short, you need python'
>>>

큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다.

문자열 띄어쓰기는 콤마로 한다.

 

파일 생성하기

f = open("new.txt", 'w')
f.close()

# 파일을 생성하기 위한 파이썬 내장 함수 open
# 파일 객체 = open(파일 이름, 파일 열기 모드)
# r 읽기, w 쓰기, a 추가
# 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용은 사라지고, 해당파일이 존재하지 않으면
# 새로운 파일이 생성된다/

f = open("C:/doit/new.txt", 'w') # 폴더는 미리 생성되어 있어야 한다.
f.close()

f = open("C:/doit/새파일.txt", 'w')
for i in range(1,11):
    data = "%d번 째 줄 입니다.\n" % i
    f.write(data)
f.close()
# 화면에 출력하지 않고 새파일.txt 에 data에 저장 된 내용을 저장 

for i in range(1,11):
    data = "%d번 째 줄 입니다.\n" % i
    print(data)
# 화면에 출력, 새파일.txt 와는 관계없음

프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법

readline() 함수 이용하기

f = open("C:/doit/새파일.txt",'r') # 읽기 모드로 연 뒤
line = f.readline() # readline 을 이용하여 첫 번째 줄을 읽어 출력하는 경우
print(line)
f.close()

# 1번 째 줄 입니다. 출력

# 모든 줄을 읽어서 호면에 출력
f = open("C:/doit/새파일.txt",'r') # 새파일.txt 을 읽기 모드로 가져온 뒤
while True: # 무한루프를 돌린다.
    line = f.readline() # readline 1~10번 째 줄을 line 에 넣는다.
    if not line: break # 만약 line에 더 이상 출력할 값이 없을 경우 break
    print(line) # line을 출력
f.close()

앞의 프로그램을 비교해보면

while 1: # 무한루프를 돌린다.
    data = input() # 사용자로부터 값을 입력받는다.
    if not data: break # 만약 data 에 값이 안들어오면 break 한다.
    print(data)
    
>>> 1
1
>>> 2
2
>>> 

# 값이 입력되지 않으면 종료

readlines 함수 사용하기

readlines 함수는 그냥 readline가 하나의 줄만 출력한다면 readlines 를 사용하면 리스트로 돌려준다.

["1번 째 줄 입니다", "2번 째 줄 입니다", ~]

 

read 함수 사용하기

read 는 파일의 내용 전체를 문자열로 돌려준다.

 

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

기존에 있던 값에 'w' 쓰기모드로 파일을 열어 작성하면 원래 있던 내용이 삭제되고 새로운 내용이 입력된다.

기존에 있는 내용은 유지하고 새로운 내용을 추가하기 위해선 'a' 추가모드를 사용해야 한다.

f = open("C:/doit/새파일.txt",'a') # add 추가 모드로 연다.
for i in range(11,20): # 11~19까지 i 에 대입
    data = "%d번 째 줄 입니다.\n" % i # 11번 째 줄 입니다 를 data에 저장
    f.write(data) # f.write(data) 로 새파일.txt 에 저장한다고 생각하면 된다.
f.close()

with문과 함께 사용하기

f = open("foo.txt",'w')
f.write("Life is too short, you need python")
f.close()
# 지금까지 살펴본 예제를 보면 항상 위와 같이 파일을 열고 닫아왔다.
# with 문은 파일 열고 닫는 것을 자동으로 처리해준다.

with open("foo.txt",'w') as f: # as f: 객체명을 f 로 지정해준다.
	f.write("Life is too short, you need pyhton") # 지정해준 f 에 write로 문장 저장

[sys 모듈로 매개변수 주기]

명령 프롬프트(DOS) 를 사용해 본 독자라면 다음과 같은 명령어를 사용해봤을 것이다.

C:\> type a.txt

type 명령어는 바로 뒤에 적힌 파일 이름을 인수로 받아 그 내용을 출력해 주는 명령 프롬프트 명령어이다.

이러한 기능을 파이썬 프로그램에도 적용할 수가 있다.

명령 프롬프트 명령어[인수1 인수2...]

파이썬에서는 sys 모듈을 사용하여 매개변수를 직접 줄 수 있다. sys 모듈을 사용하려면 아래 예의

import sys 처럼 import 명령어를 사용해야 한다.

import sys

args = sys.argv[1:]
for i in args:
    print(i)
    
# 위 예는 입력받은 인수를 for문을 사용해 차례대로 하나씩 출력하는 예이다.

C:\doit>python sys1.py aaa bbb ccc
aaa
bbb
ccc

#####################

import sys

args = sys.argv[1:]
for i in args:
    print(i.upper(), end=' ')


C:\doit>python sys2.py life is too short, you need python
LIFE IS TOO SHORT, YOU NEED PYTHON

'Language > Python' 카테고리의 다른 글

점프 투 파이썬 - 모듈  (0) 2019.07.12
점프 투 파이썬 - 클래스  (0) 2019.07.12
점프 투 파이썬 - 함수★★  (0) 2019.07.09
점프 투 파이썬 - for문★★  (0) 2019.07.09
점프 투 파이썬 - while문  (0) 2019.07.08

댓글

💲 추천 글