어떤 내용을 화면에 출력할 때는 파이썬 내장 함수 print()를 사용한다.
print(help(print))
// print(*args, sep=' ', end='\n', file=None, flush=False)
print() 함수의 다양한 속성을 매개변수로 지정할 수 있는 것을 확인할 수 있다.
실행 화면에서 사용자에게 직접 입력을 받을 때는 내장 함수 input()을 사용한다. 함수의 매개변수로 화면에 출력할 텍스트를 지정할 수 있고, 사용자가 입력한 문자열을 리턴한다.
name = input('이름을 입력하세요 : ')
print('입력한 이름은 %s입니다.' % name)
출력
이름을 입력하세요 : 홍길동
입력한 이름은 홍길동입니다.
홍길동이라는 이름을 입력받아 name 변수에 할당한 다음 name을 출력하면 입력받은 문자열을 그대로 출력하는 것을 알 수 있다.
파일의 내용을 읽거나 쓸 때는 파이썬 내장 함수 open() 함수를 사용한다. open() 함수는 하드 디스크에 저장된 파일을 열어서 데이터를 읽어오고, 파일에 내용을 출력한다. open() 함수의 사용 방법은 다음과 같다.
파일 객체 = open(file, mode='r', encoding=None, newline=None, ...)
매개변수로 파일명과 파일 열기 모드 등을 설정할 수 있고, 한글처럼 ASCII 이외의 문자를 사용할 때는 인코딩 옵션을 UTF-8이나 CP949, 혹은 EUC-KR로 지정한다. 그러나 파이썬3 버전부터는 경로명이나 파일명에 한글이 있어도 문제없이 동작한다.
open() 함수는 다음 표에 나오는 모드에 따라 생성된 파일 객체를 리턴하고, 파일을 열 수 없으면 OSError가 발생한다.
f = open('test.txt', 'w')
# mode='w'
print('file write test', file=f)
f.close()
# close 안해주면 버퍼에만 입력이 되고 파일에 입력이 안됨
새로운 디렉터리 생성 후 파일을 만들고 내용 작성
import os
os.mkdir('test')
f = open('test/test2.txt', 'w')
# mode='w'
print('file write test2', file=f)
f.close()
fr = open('test.txt')
r = fr.read()
print(r)
with문을 사용하면 close() 함수를 실행하지 않아도 자동으로 파일을 닫아주는 코드르 작성할 수 있다. with문은 콜론으로 선언하고 print() 함수를 호출하도록 구현한다. with문과 사용된 open()함수는 리턴한 파일 객체를 as 뒤에 나온 변수에 넣는다.
with open('auto.txt', 'w') as f :
print('auto close test', file=f)
auto.txt 파일을 열어보면 close() 함수를 수행하지 않았어도 내용이 출력된 것을 볼 수 있다.
open() 함수는 파일 형태의 객체를 리턴하는데, 이 객체로 사용할 수 있는 읽기와 쓰기에 관련된 다양한 함수는 다음과 같다.
contents = ['read1', 'read2', 'read3']
with open('list.txt', 'w') as f :
f.write('list print\n')
f.writelines(contents)
list print
read1read2read3
이렇게 작성돼있음
만약 리스트에 있는 애용을 하나씩 꺼내서 파일에 출력하고 싶다면, 반복문을 사용하여 리스트의 요소를 하나씩 꺼내어 파일에 출력하면 된다.
contents = ['read1', 'read2', 'read3']
with open('list.txt', 'w') as fl :
fl.write('list print\n')
for c in contents :
fl.write(c + '\n')
list print
read1
read2
read3