본문으로 건너뛰기

Python에서 파일을 복사하는 방법

파이썬에서 파일을 복사하는 방법

다음은 다양한 방법과 코드 예제를 사용하여 파이썬에서 파일을 복사하는 방법에 대한 단계별 튜토리얼입니다:

목차

  1. 소개
  2. shutil 모듈 사용
  3. os 모듈 사용
  4. open() 함수 사용
  5. 결론

소개

파일 복사는 파이썬을 포함한 모든 프로그래밍 언어에서 일반적인 작업입니다. 파이썬에서는 파일을 복사하는 다양한 방법이 있습니다. 이 튜토리얼에서는 세 가지 다른 방법을 알아보겠습니다:

  1. shutil 모듈 사용
  2. os 모듈 사용
  3. open() 함수 사용

각 방법에 대해 코드 예제와 함께 자세히 알아보겠습니다.

shutil 모듈 사용

파이썬의 shutil 모듈은 파일 작업을 위한 고수준 인터페이스를 제공합니다. 파일을 복사, 이동 및 삭제하는 함수들이 포함되어 있습니다. shutil 모듈을 사용하여 파일을 복사하는 방법은 다음과 같습니다:

import shutil

# 원본 파일과 대상 파일 경로 지정
source_file = '파일/경로/소스.txt'
destination_file = '파일/경로/대상.txt'

# 파일 복사
shutil.copy(source_file, destination_file)

위의 예제에서 '파일/경로/소스.txt'를 복사하려는 실제 파일의 경로로, '파일/경로/대상.txt'를 원하는 대상 경로로 바꿔주세요.

shutil.copy2()를 사용하면 복사된 파일에 원본 파일의 메타데이터(예: 타임스탬프)를 보존할 수도 있습니다.

import shutil

# 원본 파일과 대상 파일 경로 지정
source_file = '파일/경로/소스.txt'
destination_file = '파일/경로/대상.txt'

# 메타데이터와 함께 파일 복사
shutil.copy2(source_file, destination_file)

os 모듈 사용

파이썬의 os 모듈은 운영체제와 상호작용하는 방법을 제공합니다. 파일 및 디렉토리 작업을 위한 함수들이 포함되어 있습니다. os 모듈을 사용하여 파일을 복사하는 방법은 다음과 같습니다:

import os

# 원본 파일과 대상 파일 경로 지정
source_file = '파일/경로/소스.txt'
destination_file = '파일/경로/대상.txt'

# 파일 복사
os.system(f'cp {source_file} {destination_file}')

위의 예제에서 '파일/경로/소스.txt'를 복사하려는 실제 파일의 경로로, '파일/경로/대상.txt'를 원하는 대상 경로로 바꿔주세요.

참고: os.system() 함수는 셸 명령을 실행합니다. 이 경우에는 cp 명령을 사용하여 파일을 복사합니다.

open() 함수 사용

파이썬의 open() 함수는 주로 파일 읽기 및 쓰기에 사용됩니다. 그러나 파일의 내용을 읽고 새 파일에 쓰는 방식으로 파일을 복사하는 데에도 사용할 수 있습니다. open() 함수를 사용하여 파일을 복사하는 방법은 다음과 같습니다:

# 원본 파일과 대상 파일 경로 지정
source_file = '파일/경로/소스.txt'
destination_file = '파일/경로/대상.txt'

# 읽기 모드로 원본 파일 열기
with open(source_file, 'r') as file:
# 원본 파일의 내용 읽기
file_contents = file.read()

# 쓰기 모드로 대상 파일 열기
with open(destination_file, 'w') as file:
# 내용을 대상 파일에 쓰기
file.write(file_contents)

위의 예제에서 '파일/경로/소스.txt'를 복사하려는 실제 파일의 경로로, '파일/경로/대상.txt'를 원하는 대상 경로로 바꿔주세요.

결론

파이썬에서 파일을 복사하는 방법은 shutil 모듈, os 모듈 및 open() 함수 등 다양한 방법을 통해 가능합니다. 필요에 맞는 방법을 선택하세요.

코드에서 원본 파일 및 대상 파일 경로를 실제 경로로 교체하는 것을 잊지 마세요. 이제 파이썬에서 파일을 복사하는 방법을 알게 되었습니다!