파이썬 기초

파일 읽고쓰기

데이터_박과장 2023. 10. 11. 21:53

 

파일 생성하기

파일을 생성하려면 파일 이름과 원하는 모드(읽기, 쓰기, 추가)를 지정하여 open() 함수를 사용합니다. 파일이 존재하지 않으면 새로 생성됩니다.
예시 코드:

file = open("example.txt", "w")
file.close()  # 파일을 생성하고 닫음



파일을 쓰기 모드로 열어 내용 쓰기

파일을 쓰기 모드("w")로 열면 파일의 내용을 덮어쓰거나 새로운 내용을 쓸 수 있습니다.
예시 코드:

file = open("example.txt", "w")
file.write("Hello, World!")
file.close()



파일을 읽는 여러 가지 방법

파일을 읽는 여러 가지 방법 중에는 readline(), readlines(), read() 함수, 파일 객체를 반복문과 함께 사용하는 방법이 있습니다.
readline() 함수 이용하기

readline() 함수를 사용하여 파일에서 한 줄씩 읽을 수 있습니다. 파일 끝에 도달하면 '' (빈 문자열)을 반환합니다.
예시 코드:

file = open("example.txt", "r")
line = file.readline()
while line:
    print(line, end="")  # 줄 바꿈 문자를 무시
    line = file.readline()
file.close()



readlines() 함수 사용하기

readlines() 함수는 파일의 모든 줄을 읽어 리스트로 반환합니다. 각 요소는 파일의 각 줄에 해당합니다.
예시 코드:

file = open("example.txt", "r")
lines = file.readlines()
for line in lines:
    print(line, end="")
file.close()


read() 함수 사용하기

read() 함수를 사용하여 파일의 전체 내용을 문자열로 읽을 수 있습니다.
예시 코드:

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()



파일 객체를 for 문과 함께 사용하기

파일 객체를 for 문에 직접 사용하면 파일의 각 줄을 순회할 수 있습니다.
예시 코드:

with open("example.txt", "r") as file:
    for line in file:
        print(line, end="")



파일에 새로운 내용 추가하기

파일을 추가 모드("a")로 열면 기존 내용을 유지하고 새로운 내용을 추가할 수 있습니다.
예시 코드:

with open("example.txt", "a") as file:
    file.write("\nThis is a new line.")



with 문과 함께 사용하기

with 문을 사용하면 파일을 열고 사용한 후 자동으로 닫힙니다. 이렇게 하면 파일을 올바르게 닫는 것을 잊어버릴 위험을 피할 수 있습니다.
예시 코드:

 

with open("example.txt", "r") as file:
    for line in file:
        print(line, end="")


with 문을 사용하면 파일을 닫는 부분을 따로 작성할 필요가 없습니다.

 

파일 열기 모드는 아래와 같습니다.

 

파일 열기모드 설명

r 읽기 모드: 파일을 읽기만 할 때 사용
w 쓰기 모드: 파일에 내용을 쓸 때 사용
a 추가 모드: 파일의 마지막에 새로운 내용을 추가할 때 사용

파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고 해당 파일이 존재하지 않으면 새로운 파일이 생성됩니다. 위 예에서는 디렉터리에 파일이 없는 상태에서 ‘새파일.txt’ 파일을 쓰기 모드인 'w'로 열었기 때문에 ‘새파일.txt’라는 이름의 새로운 파일이 현재 디렉터리에 생성되었습니다.

 

만약 ‘새파일.txt’ 파일을 현재 디렉터리에 생성하고 싶다면 다음과 같이 작성하여 주시기 바랍니다.

# newfile2.py
f = open("./새파일.txt", 'w')
f.close()

위 예에서 f.close()는 열려 있는 파일 객체를 닫아 주는 역할을 합니다. 쓰기모드로 열었던 파일을 닫지 않고 다시 사용하려고 하면 오류가 발생할 수 있습니다.

 

 

아래 예제에서는 문자열 데이터를 파일에 직접 쓰는 방법을 살펴봅니다.

f = open("./새파일.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()



이 프로그램은 현재 경로의 파일을 쓰기 모드('w')로 열고, 1부터 10까지의 숫자와 해당 숫자에 해당하는 텍스트를 줄 단위로 파일에 작성합니다.

두 프로그램 간의 주요 차이점은 데이터를 출력하는 방식입니다. 첫 번째 프로그램은 데이터를 파일에 작성하고, 두 번째 프로그램은 모니터 화면에 데이터를 출력합니다. 첫 번째 프로그램에서는 파일 객체 f의 write 함수를 사용하여 파일에 데이터를 씁니다. 이것이 두 프로그램의 주요 차이점입니다.

파일에 데이터를 작성하는 방식을 사용하면 데이터를 파일로 저장하고 나중에 다시 읽거나 다른 프로그램에서 사용할 수 있습니다.

'파이썬 기초' 카테고리의 다른 글

모듈  (0) 2023.10.11
클래스 설명  (0) 2023.10.11
사용자 입력&출력  (0) 2023.10.11
파이썬 - 함수의 이해  (0) 2023.10.11
제어문 - if, while, for  (0) 2023.10.11