파이썬 고급 기능으로 파일 내용 추가하기
파이썬으로 파일에 내용 추가하기
append 모드 사용하기
가장 간단한 방법은 open()
함수를 사용하여 파일을 append
모드로 열고, write()
함수를 사용하여 내용을 쓰는 것입니다. 예를 들어, "myfile.txt"라는 파일에 "Hello, world!"라는 문자열을 추가하려면 다음 코드를 사용할 수 있습니다.
with open("myfile.txt", "a") as f:
f.write("Hello, world!\n")
with open("myfile.txt", "r+") as f:
f.seek(5)
f.write("Hello, world!\n")
참고:
append
모드로 파일을 열면 기존 내용을 덮어쓰지 않고 끝에 내용을 추가합니다.seek()
함수를 사용하여 파일에 삽입할 위치를 정확하게 지정할 수 있습니다.- 여러 줄을 파일에 추가하려면
write()
함수를 반복적으로 호출하거나f.writelines()
함수를 사용할 수 있습니다.
예제 코드
예제 1: append 모드 사용하기
# "myfile.txt" 파일에 "Hello, world!"라는 문자열을 추가합니다.
with open("myfile.txt", "a") as f:
f.write("Hello, world!\n")
예제 2: seek() 함수 사용하기
# "myfile.txt" 파일에 "Hello, world!"라는 문자열을 5번째 줄에 삽입합니다.
with open("myfile.txt", "r+") as f:
f.seek(5)
f.write("Hello, world!\n")
설명:
예제 1:
with open("myfile.txt", "a") as f:
문장은 "myfile.txt" 파일을append
모드로 엽니다.a
모드는 기존 내용을 덮어쓰지 않고 끝에 내용을 추가합니다.
f.write("Hello, world!\n")
문장은 "Hello, world!"라는 문자열을 파일에 씁니다.\n
은 개행 문자를 나타냅니다.
with open("myfile.txt", "r+") as f:
문장은 "myfile.txt" 파일을 읽고 쓰기 모드로 엽니다.r+
모드는 파일을 읽고 쓸 수 있도록 합니다.
f.seek(5)
문장은 파일 포인터를 5번째 바이트 위치로 이동합니다.f.write("Hello, world!\n")
문장은 "Hello, world!"라는 문자열을 파일에 씁니다.
참고:
- 이 코드는 Python 3.x에서 테스트되었습니다.
- 실제 코드를 작성할 때는 파일 경로와 내용을 적절하게 변경해야 합니다.
파이썬에서 파일에 내용 추가하기: 대체 방법
os 모듈 사용하기
os
모듈의 write()
함수를 사용하여 파일에 내용을 추가할 수 있습니다. 이 방법은 간단하지만, append
모드와 동일하게 작동하기 때문에 기존 내용을 덮어쓰지 않고 끝에 내용을 추가합니다.
import os
# "myfile.txt" 파일에 "Hello, world!"라는 문자열을 추가합니다.
with open("myfile.txt", "a") as f:
f.write("Hello, world!\n")
# 혹은
import os
with open("myfile.txt", "a") as f:
os.write(f.fileno(), "Hello, world!\n".encode('utf-8'))
장점:
- 간단하고 명확합니다.
단점:
append
모드와 동일하게 작동하기 때문에 기존 내용을 덮어쓰지 않습니다.
문자열 연결 사용하기
기존 파일 내용을 문자열로 읽고, 원하는 문자열을 연결한 후, 다시 파일에 쓰는 방법입니다. 이 방법은 간단하지만, 파일이 크거나 여러 번 수정해야 하는 경우 비효율적일 수 있습니다.
# "myfile.txt" 파일에 "Hello, world!"라는 문자열을 추가합니다.
with open("myfile.txt", "r") as f:
content = f.read()
content += "Hello, world!\n"
with open("myfile.txt", "w") as f:
f.write(content)
- 간단하고 코드를 직접 제어할 수 있습니다.
- 파일이 크거나 여러 번 수정해야 하는 경우 비효율적일 수 있습니다.
- 실수로 파일 내용을 손상시킬 수 있습니다.
라이브러리 사용하기
fileinput
또는 tempfile
와 같은 라이브러리를 사용하여 파일에 내용을 추가할 수 있습니다. 이러한 라이브러리는 더 복잡한 기능을 제공하지만, 코드를 더욱 명확하고 간결하게 만들 수 있습니다.
예제:
import fileinput
# "myfile.txt" 파일에 "Hello, world!"라는 문자열을 추가합니다.
for line in fileinput.input("myfile.txt", inplace=True):
if line.startswith("#"):
continue
print(line, end="")
print("Hello, world!\n", end="")
- 코드를 더욱 명확하고 간결하게 만들 수 있습니다.
- 더 복잡한 기능을 제공합니다.
- 추가 라이브러리를 설치해야 합니다.
- 코드를 이해하기 어려울 수 있습니다.
선택 가이드:
- 간단하고 빠르게 파일에 내용을 추가하고 싶으면
append
모드를 사용하는 것이 좋습니다. - 기존 내용을 덮어쓰고 싶거나, 파일에 특정 위치에 내용을 삽입하고 싶으면
seek()
함수를 사용하는 것이 좋습니다. - 코드를 간결하게 만들고 싶거나, 더 복잡한 기능을 필요로 하는 경우 라이브러리를 사용하는 것이 좋습니다.
python file append