파이썬 표준 라이브러리에는 문자열이나 파일 간의 차이점(diff)을 찾기 위해 특별히 만들어진 모듈이 있습니다. 바로 difflib입니다. 이 모듈의 unified_diff 함수를 호출하면 별도의 외부 도구 없이도 두 파일의 차이를 손쉽게 확인할 수 있습니다.예제: 비교할 두 파일 준비하기예를 들어 다음과 같은 내용을 담고 있는 두 개의 파일, file1과 file2가 있다고 가정해 보겠습니다.file1: Hello People of the world file2: Hello People from India차이점을 계산하는 코드두
서로 다른 두 개의 Python 인터프리터 인스턴스 사이에서는, 정보를 어딘가 외부에 저장하지 않고는 공통 데이터를 공유할 수 없습니다. 이를 해결하려면 네트워크/소켓 통신을 사용하거나 임시 파일을 활용해야 합니다. 가장 간단한 방법: 파일을 이용한 데이터 공유 가장 손쉬운 방식은 파일을 매개체로 삼아 데이터를 공유하는 것입니다. Python의 pickle 모듈을 사용하면 객체를 파일로 직렬화하여 저장하고, 다른 스크립트에서 해당 파일을 열어 역직렬화(deserialize)함으로써 원본 객체를 그대로 복원할 수 있습니다. 1.
파이썬다운 방식: EAFP 관용구 활용하기파이썬으로 프로그래밍할 때는 일반적으로 파이썬다운(Pythonic) 코드를 작성하는 것이 좋습니다. 파이썬의 대표적인 관용구 중 하나가 바로 EAFP(Easier to Ask Forgiveness than Permission), 즉 허락을 구하는 것보다 용서를 구하는 것이 쉽다입니다. 이 방식에 따르면 디렉토리를 일단 생성해 보고, 이미 존재하는 경우 발생하는 오류를 예외 처리로 잡아내면 됩니다.EAFP 방식 예제import os, errno try: os.makedirs(my_fo
Python에서 특정 디렉토리(폴더)가 존재하는지 확인하려면 os 모듈의 os.path.exists() 함수를 사용하면 됩니다. 이 함수는 경로가 실제로 존재하는 경우 True, 존재하지 않는 경우 False를 반환합니다.기본 사용 예제import osif not os.path.exists(my_folder): print(해당 경로가 존재하지 않습니다)else: print(해당 경로가 존재합니다)위 코드를 실행했을 때 my_folder 폴더가 이미 존재한다면 다음과 같은 결과가 출력됩니다.해당 경로가 존재합니다참고: 디렉
Python에서 홈 디렉터리 경로 구하기Python에서 사용자의 홈 디렉터리(홈 폴더) 경로를 확인해야 하는 경우가 종종 있습니다. 가장 간단하고 널리 사용되는 방법은 os 모듈의 os.path.expanduser(~) 함수를 활용하는 것입니다.1. os.path.expanduser() 사용하기os.path.expanduser(~)는 경로 문자열에 포함된 물결표(~)를 실제 홈 디렉터리의 절대 경로로 확장해 줍니다. 이 함수는 짧은 경로뿐만 아니라 ~/Documents/my_folder/처럼 홈 디렉터리가 포함된 더 긴 경로에서도
Python에서는 os.walk 함수를 사용해 디렉토리 트리를 손쉽게 순회할 수 있습니다. 이 함수는 지정한 최상위 디렉토리부터 시작해 하위 폴더까지 재귀적으로 탐색하며, 각 단계마다 현재 경로, 하위 디렉토리 목록, 파일 목록을 차례로 반환합니다. 예제 import os for dirpath, dirs, files in os.walk(./my_directory/): for filename in files: fname = os.path.join(dirpath, filename) with open(
Python에서 디렉토리(폴더)를 삭제해야 할 때는 상황에 따라 적절한 방법을 선택하는 것이 중요합니다. 폴더가 비어 있는지, 아니면 내부에 파일이나 하위 폴더가 포함되어 있는지에 따라 사용해야 하는 함수가 달라집니다.1. 빈 디렉토리 삭제하기: os.rmdir()비어 있는 폴더를 삭제하려면 os 모듈의 rmdir() 함수를 사용하면 됩니다. 이 함수는 대상 폴더가 비어 있을 때만 정상적으로 작동하며, 내부에 파일이 하나라도 남아 있으면 OSError가 발생합니다.예제 코드>>> import os >>&g
Python에서 외부 라이브러리나 패키지가 설치되는 site-packages 디렉토리의 위치를 확인해야 할 때가 있습니다. 이때 기본으로 제공되는 site 모듈을 사용하면 간단하게 확인할 수 있습니다.site 모듈로 site-packages 경로 찾기Python 인터프리터에서 site 모듈의 getsitepackages() 함수를 호출하면 시스템 전역 site-packages 디렉토리 목록이 반환됩니다.>>> import site>>> site.getsitepackages()[/usr/local/li
Python에서 특정 디렉터리 내에 있는 파일을 찾고 싶다면 os.walk를 사용해 디렉터리 트리를 순회하면 됩니다. os.walk는 지정한 경로를 루트로 하여 모든 하위 폴더와 파일을 재귀적으로 탐색해 주는 강력한 도구입니다.기본 예제 코드아래는 파일 이름과 검색할 디렉터리를 인자로 받아, 일치하는 모든 파일의 전체 경로를 리스트로 반환하는 함수입니다.import os def find_file(file_name, directory_name): files_found = [] for path, subdirs, file
Python에서 디렉터리의 전체 크기를 구하려면 해당 디렉터리 트리를 모두 순회하면서 각 파일의 크기를 더해야 합니다. 이를 위해 os.walk() 함수와 os.path.getsize() 함수를 함께 사용할 수 있습니다.방법 1: os.walk()와 os.path.getsize() 사용하기os.walk()는 시작 경로부터 하위 디렉터리까지 재귀적으로 탐색하며, 각 위치에서 파일 목록을 반환합니다. 여기에 os.path.getsize()로 파일 크기를 가져와 합산하면 디렉터리 전체 크기를 계산할 수 있습니다.예제 코드import os
__init__.py 파일이란?__init__.py 파일은 파이썬이 특정 디렉터리를 하나의 패키지(package)로 인식하도록 만드는 데 필수적인 파일입니다. 이 파일이 존재해야 파이썬은 해당 디렉터리를 단순한 폴더가 아닌 패키지로 취급합니다.왜 __init__.py가 필요한가?이 파일이 필요한 가장 큰 이유는 모듈 검색 경로(module search path)에서 문제를 예방하기 위함입니다. 예를 들어 string처럼 흔히 사용되는 이름을 가진 디렉터리가, 검색 경로상 뒤에 위치한 실제 유효한 모듈을 의도치 않게 가려버리는 상황을
Python에서 현재 실행 중인 파일의 전체 경로(절대 경로)를 확인하려면 os.path.abspath 함수를 사용하면 됩니다. 여기서 전체 경로 중 디렉토리 부분만 필요하다면 os.path.dirname 함수를 함께 사용하면 됩니다.예제 코드아래 예제는 __file__ 변수에 담긴 현재 파일의 상대 경로를 절대 경로로 변환한 뒤, 전체 경로와 디렉토리 경로를 각각 출력합니다.import os absolute_path = os.path.abspath(__file__) print(전체 경로: + absolute_path) prin
Python에서 특정 디렉토리의 모든 하위 디렉토리를 재귀적으로(하위 디렉토리까지 모두 탐색하여) 목록으로 가져오려면 os.walk 함수를 사용하는 것이 가장 간단합니다.os.walk로 재귀적으로 하위 디렉토리 찾기os.walk는 디렉토리 트리를 순회하면서 세 개의 요소(현재 경로, 하위 디렉토리 목록, 파일 목록)로 구성된 튜플을 생성합니다. 이 중 첫 번째 요소가 바로 디렉토리 경로이므로, 이를 활용하면 전체 하위 디렉토리 목록을 쉽게 얻을 수 있습니다.import os subdirs = [x[0] for x in os.walk
파이썬에서 파일이나 디렉터리의 상위(부모) 디렉터리 경로를 확인해야 하는 경우가 자주 있습니다. 사용 중인 파이썬 버전에 따라 두 가지 방법을 활용할 수 있습니다.방법 1: pathlib 모듈 사용 (Python 3.4 이상)Python 3.4부터는 pathlib 모듈을 사용하는 것이 가장 권장되는 방식입니다. 객체 지향적인 인터페이스를 제공하며, .parent 속성만으로 간단하게 상위 디렉터리를 얻을 수 있습니다.예제from pathlib import Pathprint(Path(/home/username).parent)실행 결과위
현재 실행 중인 Python 스크립트와 동일한 디렉토리에 있는 파일을 여는 가장 안정적이고 신뢰할 수 있는 방법은 sys.path[0]를 사용하는 것입니다. sys.path[0]는 현재 실행 중인 스크립트가 위치한 디렉토리의 절대 경로를 담고 있기 때문에, 작업 디렉토리(working directory)가 어디로 변경되더라도 항상 올바른 위치에서 파일을 찾을 수 있습니다.sys.path[0] 사용 예시예를 들어, 실행 중인 스크립트와 같은 폴더에 my_file.txt라는 파일이 있다면 다음과 같이 열 수 있습니다.import os
Python에서는 os 모듈이 제공하는 함수를 활용해 단일 파일이나 빈 폴더를 간단하게 삭제할 수 있습니다. 이 글에서는 파일 하나를 삭제하는 기본 방법부터 디렉토리 전체를 한 번에 정리하는 다양한 기법까지 살펴보겠습니다.1. 단일 파일 삭제하기예를 들어 my_file.txt라는 파일을 삭제하고 싶다면 다음과 같이 작성합니다.>>> import os>>> os.remove(my_file.txt)os.remove()의 인자에는 반드시 절대 경로 또는 상대 경로를 지정해야 합니다. 파일이 존재하지 않으면
파이썬에서 파일 열기: open() 함수 기본 사용법 파이썬에서는 open() 함수를 사용하여 파일을 엽니다. 가장 기본적인 사용 예시는 다음과 같습니다. f = open(my_file, r+) my_file_data = f.read() f.close() 위 코드는 my_file 파일을 읽기 모드로 연 뒤, 파일에서 읽은 데이터를 my_file_data 변수에 저장하고 마지막에 파일을 닫습니다. open() 함수의 첫 번째 인자는 파일 이름(경로)이며, 두 번째 인자는 파일을 어떤 방식으로 열지 결정하는 열기 모드(open mode
Python에서 특정 경로가 디렉토리(폴더)인지 아니면 일반 파일인지 확인하려면 표준 라이브러리의 os.path 모듈을 사용하면 됩니다. 가장 기본적인 방법은 os.path.isfile() 메서드입니다. os.path.isfile()로 일반 파일 확인하기 os.path.isfile()은 지정한 경로가 실제로 존재하고 일반 파일일 경우 True를 반환하며, 경로가 디렉토리이거나 존재하지 않으면 False를 반환합니다. 예제 >>> import os >>> print(os.path.isfile(my_fi
파이썬에서는 os 모듈을 사용해 현재 작업 디렉터리를 확인하거나 변경할 수 있습니다. 이 모듈은 운영체제와 상호작용하는 다양한 기능을 제공하며, 그중 디렉터리 관련 작업에 가장 많이 사용되는 함수가 바로 os.chdir()과 os.getcwd()입니다.현재 작업 디렉터리 확인하기현재 작업 디렉터리(Current Working Directory)를 알고 싶다면 os 모듈의 os.getcwd() 함수를 사용하세요. getcwd는 get current working directory의 약자로, 셸에서 pwd 명령어를 실행한 것과 동일한
Python에서 파일 생성 날짜를 기준으로 정렬된 디렉터리 목록을 얻으려면 다음 순서로 처리하면 됩니다.먼저 os.listdir()을 호출해 디렉터리 내 파일 이름 목록을 가져오고, 각 파일에 대해 os.stat()을 호출해 생성 시간(ctime)을 확인한 뒤, 마지막으로 이 생성 시간을 기준으로 정렬하는 방식입니다.예제 코드import os import time from stat import S_ISREG, ST_CTIME, ST_MODE dir_path = . # 디렉터리 내 모든 항목의 전체 경로 가져오기 entries =