파이썬에서 파일이나 디렉토리를 이동하는 방법은 2가지가 있습니다. 하나는 OS의 명령어를 이용하는 방법이고, 다른 하나는 shutil 모듈을 이용하는 방법이 있습니다. 2가지 방법과 장단점, 그리고 추천하는 방법을 차례대로 알아보겠습니다.

 

 

1. OS 명령어를 이용하는 방법

OS는 Operating System의 약자로 윈도우나 리눅스 같은 프로그램을 말합니다. OS에는 파일을 이동할 수 있는 시스템 명령어가 있습니다. 파이썬은 os모듈을 이용해서 시스템 명령어를 실행할 수 있지요.

 

아래와 같이 입력하면 리눅스를 사용하는 경우에 파일을 특정 경로로 이동할 수 있습니다. 폴더도 그에 해당하는 시스템 명령어를 실행하면 됩니다.

 

import os

os.system('mv /DATA/*.csv /TO_DATA/')

 


윈도우의 경우는 아래와 같이 할 수 있습니다.

 

import os

os.system('move *.csv D:\TO_DATA\')

 


시스템 명령어에 익숙하다면 쉽게 작성할 수 있는 것이 장점입니다. 단점은 에러가 나도 내용을 알기는 어렵다는 것입니다.

 

system함수는 명령어가 실행되고, 실행결과가 정수값으로 반환됩니다. 이 때 0은 정상실행을 의미하고, 그 외의 숫자는 에러가 난 것을 의미합니다. 숫자별로 의미가 있기는 하지만 이를 알려면 검색을 해봐야 합니다. 에러에 대한 내용은 아래 링크에서 확인할 수 있었습니다.

( 참조: https://docs.microsoft.com/ko-kr/windows/win32/debug/system-error-codes?redirectedfrom=MSDN )

참고로 같은 의미로 결과값이 필요한 명령어 ls나 ipconfig같은 경우에는 popen 함수를 이용해야 합니다. 그래야 결과값을 받을 수 있습니다.

 

os.popen('ls').read()

 

 

2. shutil 이용하기

shutil 모듈을 이용하면 아래와 같이 파일을 이동할 수 있습니다. shutil은 파일을 다루는 파이썬 내장 모듈입니다. 개별 파일이나 폴더를 이동하기에 좋습니다.

 

shutil.move('/DATA', '/TO_DATA')

 

위와 같이 폴더를 이동할 수도 있고, 파일을 지정해서 개별 파일을 이동할 수도 있습니다. 장점은 에러가 날 때 그 이유를 확인할 수 있다는 점입니다. 예를 들어 옮기려는 파일이 없는 경우, os.system함수를 이용하는 방법은 에러가 발생하지 않는다는 것이지요. 하지만 shutil모듈을 이용하는 파일이 없으며 에러가 발생합니다.

 

 

오늘은 이렇게 파이썬에서 파일이나 디렉토리를 이동하는 2가지 방법에 대해서 알아보았습니다. 필자는 후자의 방법을 추천합니다. 이유는 에러가 발생했을 때 이유를 알 수 있기 때문입니다. system함수를 이용하더라도 결과값을 확인하여 실제 파일이 잘 이동했는지 확인하는 것이 좋겠습니다. 그리고 코드도 더 간결합니다.

 

국비지원교육 종류 어떤 과정들이 있나요?

디지털 기술이 발달하면서 관련 인재 육성이 중요한 국가 과제가 됐습니다. 그래서 다양한 국비지원교육이 생겨났는데요. 빅데이터 뿐만 아니라 블록체인, 코딩 등 수요가 높은

aplab.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기