Python
Python 개념 및 실습 - 파일 읽고 쓰기(1)
developers developing
2022. 9. 9. 09:00
화면 출력 print, 입력 input
open("파일명", 모드, encoding...) : 파일을 읽거나 쓸 때 사용
with + open() : close()를 알아서 해줌
f = open("data/test1.txt", "w", encoding="utf-8")
f.write("안녕하세요\n반갑습니다.")
f.close()
with open("data/test1.txt", "w", encoding="utf-8") as f:
f.write("안녕하세요\n반갑습니다.")
# 1~10까지 파일로 작성
# w : 기존에 있던 내용은 무시하고 새로 작성
f = open("data/test1.txt", "w", encoding="utf-8")
for i in range(1, 11):
f.write("%d\n" % i)
f.close()
with open("data/test1.txt", "a", encoding="utf-8") as f:
for i in range(1, 11):
f.write("%d\n" % i)

# a : append 기능. 기존에 있던 내용 뒤로 덧붙이기
f = open("data/test1.txt", "a", encoding="utf-8")
for i in range(1, 11):
f.write("%d\n" % i)
f.close()

# list를 파일에 쓰려면 for문 + write(), for문 + writelines()
# list를 파일로 작성
list = ["홍길동", "김길동", "최길동"]
f = open("data/test1.txt", "w", encoding="utf-8")
f.write(list) #TypeError: write() argument must be str, not list
f.close()
# writelines : 줄단위로 작성
list = ["홍길동", "김길동", "최길동"]
f = open("data/test1.txt", "w", encoding="utf-8")
f.writelines(list)
f.close()

list = ["홍길동\n", "김길동\n", "최길동\n"]
f = open("data/test1.txt", "w", encoding="utf-8")
f.writelines(list)
f.close()
list = ["홍길동", "김길동", "최길동"]
f = open("data/test1.txt", "w", encoding="utf-8")
for i in list:
f.write(i + "\n")
f.close()

# 딕셔너리 파일로 작성
dict1 = {"name": "hong", "age": 25, "addr": "서울"}
f = open("data/test1.txt", "w", encoding="utf-8")
# f.writelines(dict1) 키 값만 기록됨
for k, v in dict1.items():
f.writelines("{} : {}\n".format(k, v))
f.close()
# 실습 : 1000 명의 키와 몸무게를 랜덤으로 생성한 후 파일 작성
import random
list1 = list("가나다라마바사아자차카타파하")
f = open("data/info.txt", "w", encoding="utf-8")
# choice(list1) : 무작위로 하나
# randrange(40,100) : 40~100 사이 임의의 숫자
for i in range(1000):
name = random.choice(list1) + random.choice(list1)
weight = random.randrange(40, 100)
height = random.randrange(140, 200)
f.writelines("{}, {}, {}\n".format(name, weight, height))
f.close()