이 글에서는 파이썬의 파일 처리(File Handling) 방법을 다룹니다. 아래 예제 코드를 통해 파이썬에서 파일을 생성하고, 읽고, 쓰고, 삭제하는 방법을 단계별로 살펴보겠습니다.
파이썬으로 파일 생성하기
파이썬에서 파일을 생성하려면 open() 메서드를 사용합니다. 이 메서드는 두 개의 매개변수를 받는데, 첫 번째는 파일 이름이고 두 번째는 모드입니다. 모드로는 'x', 'a', 'w' 중 하나를 지정할 수 있습니다.
'x'(생성 모드): 새 파일을 만듭니다. 이미 같은 이름의 파일이 존재하면 오류가 발생합니다.'a'(추가 모드): 기존 파일 끝에 내용을 추가합니다. 파일이 없으면 새로 생성됩니다.'w'(쓰기 모드): 파일에 내용을 덮어씁니다. 파일이 없으면 새로 생성됩니다.
예제:
file = open("somefile.txt", "x")
위 코드를 실행하면 somefile.txt라는 새 파일이 생성됩니다.
파이썬으로 파일 읽기
파이썬에서 파일을 읽으려면 open() 함수에 파일 이름과 함께 읽기 모드인 'r'을 전달합니다.
예제: somefile.txt라는 파일을 읽어 보겠습니다.
somefile.txt의 내용:
Hello!!
Welcome to Python
Goodbye.
file = open('somefile.txt', 'r')
print(file.read())
file.close()
실행 결과:
Hello!!
Welcome to Python
Goodbye.
파일의 일부만 읽는 방법
read() 메서드에 문자 수를 인자로 전달하면 파일의 일부분만 읽을 수 있습니다. 예를 들어 처음 5글자만 읽어 보겠습니다.
file = open('somefile.txt', 'r')
print(file.read(5))
file.close()
실행 결과:
Hello
파일을 한 줄씩 읽는 방법
readline() 메서드를 사용하면 파일의 각 줄을 순서대로 읽을 수 있습니다.
한 줄만 읽기
file = open('somefile.txt', 'r')
print(file.readline())
file.close()
실행 결과:
Hello!!
두 줄 읽기
readline()을 호출할 때마다 다음 줄이 차례로 반환됩니다.
file = open('somefile.txt', 'r')
print(file.readline())
print(file.readline())
file.close()
실행 결과:
Hello!!
Welcome to Python
전체 줄 읽기
for 반복문을 사용하면 파일의 모든 줄을 한 번에 읽을 수 있습니다.
file = open('somefile.txt', 'r')
for x in file:
print(x)
실행 결과:
Hello!!
Welcome to Python
Goodbye
파이썬으로 파일에 쓰기
파일에 내용을 쓸 때도 마찬가지로 open() 메서드를 사용합니다. 첫 번째 매개변수로 파일 이름을, 두 번째 매개변수로 'a' 또는 'w' 모드를 전달합니다.
'a': 지정된 기존 파일에 데이터를 추가(append)합니다.'w': 지정된 파일의 기존 내용을 덮어씁니다(overwrite).
두 경우 모두 해당 파일이 존재하지 않으면 새로 생성됩니다.
새 파일에 쓰기
file = open('writefile.txt', 'w')
file.write("Write some content!")
file.close()
실행 결과: writefile.txt가 생성되며 내용은 다음과 같습니다.
Write some content!
주의: 파일이 존재하지 않으면 새로 생성되지만, 이미 파일이 존재한다면 기존 내용이 모두 덮어써집니다!
기존 파일에 내용 추가하기
기존 파일에 내용을 추가하려면 open() 메서드에 추가 모드인 'a'를 전달합니다.
file = open('writefile.txt', 'a')
file.write("\nWrite more content!")
file.close()
실행 후 writefile.txt의 내용:
Write some content!
Write more content!
파이썬으로 파일 삭제하기
파일을 삭제하려면 먼저 os 모듈을 임포트한 뒤 remove() 메서드를 사용해야 합니다.
import os
if os.path.exists("writefile.txt"):
os.remove("writefile.txt")
위 코드는 파일을 삭제하기 전에 먼저 해당 파일이 존재하는지 확인합니다. 파일이 존재하지 않는 상태에서 삭제를 시도하면 오류가 발생하기 때문에, 이처럼 os.path.exists()로 존재 여부를 검사하는 것이 안전합니다.