Python 파일 열기/읽기/쓰기

dumbbelldore·2024년 11월 8일
0

zero-base 33기

목록 보기
11/97

1. 파일 관련 함수

  • Python에서는 open(), read(), write(), close()를 이용하여 텍스트를 읽고 쓸 수 있음
  • 텍스트 입출력 작업이 종료되었으면, open()한 파일을 close()하여 메모리에서 제거하는 것이 좋음
# 파일 open
my_file = open("./test.txt", "w") # w: write 모드

# 텍스트 기입
str_cnt = my_file.write("Hello world!")
print("글자수:", str_cnt) # 글자수: 12

# 파일 close
my_file.close()

2. 파일 열기

  • open() 함수 사용 시, 기본적으로 mode='r'(읽기, 파일 부재 시 에러)상태로 간주되며 필요 시 다양한 모드를 사용할 수 있음
    - 'r': 읽기 (단, 파일 부재 시 에러)
    - 'x': 읽기 (단, 파일 존재 시 에러)
    - 'w': 쓰기 (단, 파일 존재 시 덮어씌움)
    - 'a': 쓰기 (단, 파일 존재 시 이어쓰기)

3. 파일 읽기

  • read() 함수를 이용하여 문자열을 읽을 수 있고, 이 경우 해당 파일을 통째로 읽어온다.
# test.txt
# 나의 이름은 홍길동.
# 나의 나이는 23세.

my_file = open("./test.txt")
content = my_file.read()
print(content)
my_file.close()

# 출력결과
# 나의 이름은 홍길동.
# 나의 나이는 23세.

4. 파일 쓰기

  • write() 함수를 이용하고, open() 시 쓰기와 관련 된 모드(w 또는 a)로 지정하여야 정상적으로 쓰기 기능 사용이 가능함
  • 여러 줄을 입력하고자 할 때에는 줄바꿈(\n) 문자를 함께 작성하여야 함
my_file = open("./test.txt", "w")
my_file.write("abc")
my_file.write("\n")
my_file.write("def")
my_file.close()

# 저장결과
abc
def

5. with ~ as 문

  • with ~ as 문을 사용하면 close() 함수 미사용으로 인한 메모리 문제를 예방할 수 있음
with open('./test.txt', mode='w') as f:
	f.write('abc\ndef') # 자동 close() 기능 포함

# 저장결과
abc
def

6. readline(), readlines() 함수

  • 한번에 모든 텍스트를 읽는 read()와 달리, readline()은 한 줄을 읽을 수 있고, readlines()는 전체 줄을 읽어 리스트로 반환함
# test.txt
abc
def
xyz

# read() 시
with open("test.txt", "r") as f:
	print(f.read())

# 출력예시
# abc
# def
# xyz

# readline() 시
with open("test.txt", "r") as f:
	print(f.readline())
    
# 출력예시
# abc

# readlines() 시
with open("test.txt", "r") as f:
	print(f.readlines())
    
# 출력예시
# ['abc\n', 'def\n', 'xyz\n']

7. writelines() 함수

  • 한 번에 하나의 텍스트열을 쓸수 있는 write()와 달리, writelines()를 사용하는 경우 리스트 내 요소를 한꺼번에 저장이 가능함
my_list = ['abc\n', 'def\n', 'xyz\n']

# write() 사용 시
with open("./test.txt", "w) as f:
	for elem in my_list:
    	f.write(elem)

# writelines() 사용 시
with open("./test.txt", "w) as f:
	f.writelines(my_list)

# 저장결과(동일)
abc
def
xyz

*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글