목차
- 파이썬 작업 디렉토리 변경 예제 이전 포스팅 참고 학습
- 파이썬 tarfile을 이용한 파일 압축 예제 이전 포스팅 참고 학습
- 파이썬 파일 목록 구하기 예제 이전 포스팅 참고 학습(os.walk)
- 파이썬 특정 디렉토리의 특정 확장자 파일 목록 구하기 예제
- 파이썬 파일들 zipfile로 zip 압축 예제
파이썬 작업 디렉토리 변경 예제 이전 포스팅 참고 학습
이전 포스팅에서는 os 모듈을 사용하여 파이썬 작업 디렉토리를 변경하는 예제에 대해 알아보았습니다. 현재 작업 디렉토리를 확인하고 os.chdir() 함수를 활용하여 작업 디렉토리를 변경하는 방법을 확인하였습니다.
이를 통해 상대 경로를 활용하여 파일, 디렉토리 접근이 용이하였습니다. 오늘 예제도 특정 디렉토리 내의 파일들을 검색하고 압축하는 것입니다. 직접적인 관계는 없지만 디렉토리 혹은 경로를 활용한다는 점에서 알아두면 좋습니다.
아직 작업 디렉토리 변경하는 방법에 대해 잘 모르신다면 아래 링크를 참고하여주세요.
2021.11.27 - [Python/os] - Python 작업 경로 및 디렉토리 변경(os.chdir)
파이썬 tarfile을 이용한 파일 압축 예제 이전 포스팅 참고 학습
파일 압축은 파일 용량을 줄이고 전송이나 보관을 용이하게 하는 데에 유용한 기능입니다. 오늘 다룰 압축 방식은 zipfile 모듈을 이용한 압축입니다. 이전 포스팅에서는 tarfile 모듈을 사용하여 파이썬에서 파일을 압축하는 예제에 대해 알아보았습니다. 파일 압축의 종류와 장단점, tarfile 모듈의 사용법, 압축 및 압축 해제 과정 등이 포함되어있습니다.
zipfile 이외 tarfile로 압축하는 방법도 궁금하시다면 아래 링크의 포스팅을 참고해주세요.
2023.07.22 - [Python] - [Python] tarfile 모듈을 활용한 tar 압축, 해제 및 파일 목록 확인하기 - 2
파이썬 파일 목록 구하기 예제 이전 포스팅 참고 학습(os.walk)
오늘 예제를 수행하기 위해서는 특정 디렉토리 내에 있는 파일들의 목록과 경로들을 구해야합니다. 이러한 예제를 이미 이전 포스팅에서 알아보았습니다. 해당 포스팅에서는 os.walk 모듈을 사용하여 파이썬에서 파일 목록을 구하는 방법이 포함되어있습니다. 따라서 오늘 포스팅 예제를 따라하기에 앞서 이전 포스팅을 먼저 참고해주세요.
2023.08.23 - [Python] - [Python] os.walk 특정 디렉토리 내의 파일 및 디렉토리 경로 구하기 예제
파이썬 특정 디렉토리의 특정 확장자 파일 목록 구하기 예제
아래는 os.walk 모듈을 활용하여 사용자에게 특정 디렉토리 경로와 확장자를 입력받고 그 디렉토리 내의 특정 확장자 파일들의 목록을 가져와 리스트에 추가하고 출력하는 예제입니다.
import os
def get_all_file_paths(directory_path, extension):
file_paths = []
for dirpath, dirnames, filenames in os.walk(directory_path):
for filename in filenames:
if filename.endswith(extension):
file_path = os.path.join(dirpath, filename)
file_paths.append(file_path)
return file_paths
user_path = input("Enter a directory path: ")
user_extension = input("Enter the file extension (e.g., .txt): ")
if os.path.exists(user_path) and os.path.isdir(user_path):
all_file_paths = get_all_file_paths(user_path, user_extension)
print("All file paths:")
for file_path in all_file_paths:
print(file_path)
else:
print("Invalid directory path.")
파이썬 파일들 zipfile로 zip 압축 예제
아래는 위에서 구한 파일들의 경로가 포함된 리스트를 참조하여 zipfile모듈로 압축하는 예제입니다.
import os
import zipfile
def zip_files(file_paths, output_path):
with zipfile.ZipFile(output_path, 'w') as zipf:
for file_path in file_paths:
zipf.write(file_path, os.path.basename(file_path))
user_path = input("Enter a directory path: ")
user_extension = input("Enter the file extension (e.g., .txt): ")
zip_filename = input("Enter the name of the output ZIP file: ")
if os.path.exists(user_path) and os.path.isdir(user_path):
all_file_paths = get_all_file_paths(user_path, user_extension)
if all_file_paths:
zip_files(all_file_paths, zip_filename + '.zip')
print(f"All files with {user_extension} extension have been zipped.")
else:
print(f"No files with {user_extension} extension found.")
else:
print("Invalid directory path.")