공부합시다!/python

18. File 다루기

간서치 2023. 2. 16. 00:14
728x90

Python은 빅데이터 및 인공지능에 쓰일 만큼 그 범용성이 크게 확장이 되어 있습니다.

그 기본이 되는 파일 다루기에 대해서 살펴보겠습니다.

파일 읽기, 쓰기가 대표적인 작업 입니다.

 

# 파일 읽기, 쓰기
# 읽기 모드 : r, 쓰기 모드(기존 파일 삭제), w 추가모드(파일 생성 또는 추가) : a

# 파일 읽기'.

# 예제 1
f = open('./resource/review.txt', 'r')
content = f.read()
print(content)
# 반드시 close 리소스 반환
f.close()
print(dir(f))

print('*'*80)

# 예제 2 : with문을 이용하면 리소스 자동반환
with open('./resource/review.txt', 'r') as f:
  c = f.read()
  print(c)
  print(list(c))

print("*"*100)

# 예제 3
with open('./resource/review.txt', 'r') as f:
  for c in f:
    print(c.strip())

print("*"*100)

# 예제 4
with open('./resource/review.txt', 'r') as f:
  content = f.read()
  print(">", content)
  content = f.read()  # 내용 없음.
  print(">", content)


# 예제 5
with open('./resource/review.txt', 'r') as f:
  line = f.readline()   # 한줄만 읽어옴
  print(line)

print(">"*100)
with open('./resource/review.txt', 'r') as f:
  line = f.readline()
  while line:
    print(line, end = ">>>>>>>")
    line = f.readline()

print(">"*100)

# 예제 6
with open('./resource/review.txt', 'r') as f:
  contens = f.readlines()   # 한줄만 읽어옴
  print(content)
  for c in content:
    print(c, end="**************")

print(">"*100)

# 예제 7
with open('./resource/score.txt', 'r') as f:
  score = []
  for line in f:
    score.append(int(line))
  print(score)
print("Average :  {:6.3}".format(sum(score)/len(score)))


# 파일 쓰기

# 예제 1
with open('./resource/text1.txt', 'w') as f:
  f.write('first make file\n')

print(">"*100)

# 예제 2
with open('./resource/text1.txt', 'a') as f:
  f.write('second line\n')

# 예제 3
from random import randint
with open('./resource/text2.txt', 'w') as f:
  for cnt in range(6):
    f.write(str(randint(0, 50)))
    f.write('\n')


# 예제 4
# writelines : 리스트 -> 파일로 저장
with open('./resource/text3.txt','w') as f:
  list = ["kim\n", "lee\n", "park\n"]
  f.writelines(list)

# 예제 5
# print 문 활용하여 파일 쓰기

with open('./resource/text4.txt','w') as f:
  print("Test Contests1!", file=f)
  print("Test Contests2!", file=f)

728x90