Repository navigation
Expand file tree
/
Copy pathwriteEx.py
More file actions
49 lines (42 loc) · 2.27 KB
/
Copy pathwriteEx.py
File metadata and controls
49 lines (42 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 파일 쓰기
#
# open() 으로 열고, 다 쓰면 close() 로 닫는다.
# 인자는 (경로, 모드, encoding) 세 가지를 주로 쓴다.
#
# ※ 위 두 줄에 'coding=' 으로 끝나는 낱말을 쓰지 않도록 조심하세요.
# 파이썬은 파일의 첫 두 줄에서 '# ...coding=이름' 을 찾으면 그것을
# 소스 파일의 인코딩 선언(PEP 263)으로 해석합니다.
# 실제로 이 파일도 처음엔 2행에 'encoding=...' 이라고 썼다가
# SyntaxError: encoding problem: ... 으로 실행이 안 됐습니다.
print('---------- with 없이 (권장하지 않음) ----------')
f = open('output/memo1.txt', 'w', encoding='utf-8')
f.write('첫 줄\n')
f.write('둘째 줄\n')
f.close() # 이걸 빠뜨리면 내용이 안 써질 수 있다
print('memo1.txt 작성 완료')
print('---------- with 사용 (권장) ----------')
# with 블록을 벗어나면 파이썬이 알아서 close() 해 준다.
# 중간에 에러가 나도 닫힌다.
with open('output/memo2.txt', 'w', encoding='utf-8') as f:
f.write('첫 줄\n')
f.write('둘째 줄\n')
print('memo2.txt 작성 완료')
print('---------- 모드 ----------')
# 'w' 쓰기 : 파일이 있으면 내용을 통째로 지우고 새로 쓴다 (주의!)
# 'a' 추가 : 기존 내용 뒤에 이어 쓴다
# 'r' 읽기 : 기본값
# 'x' 배타생성: 파일이 이미 있으면 에러
with open('output/memo2.txt', 'a', encoding='utf-8') as f:
f.write('추가된 줄\n')
print('memo2.txt 에 이어쓰기 완료')
print('---------- 여러 줄 한 번에 ----------')
lines = ['사과\n', '바나나\n', '딸기\n']
with open('output/fruits.txt', 'w', encoding='utf-8') as f:
f.writelines(lines) # 줄바꿈은 알아서 안 붙여 준다. 직접 넣어야 한다
print('---------- print 로 파일에 쓰기 ----------')
with open('output/report.txt', 'w', encoding='utf-8') as f:
print('제목 : 성적표', file=f) # file= 을 주면 화면 대신 파일로
print('작성자 : 홍길동', file=f)
print('---------- encoding 을 꼭 지정하세요 ----------')
# 지정하지 않으면 운영체제 기본값을 씁니다. 윈도우는 cp949, macOS/리눅스는 utf-8 이라
# 한글이 든 파일을 주고받으면 깨집니다. 항상 encoding='utf-8' 을 쓰세요.