IT_developers

Python 개념 및 실습 - 파일 읽고 쓰기(1) 본문

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()

Comments