Python의 진정한 힘은 바로 자동화에 있습니다. 일상 작업에 이 힘을 활용하지 않으시겠습니까?
다음의 10가지 Python 스크립트는 초보자부터 숙련된 개발자까지 반복적인 작업을 자동화하고, 시간을 절약하며, 효율성을 높이는 데 도움을 줄 것입니다.
전문가 수준이 아니더라도 지금 바로 시작할 수 있습니다!
1. 이미지 최적화 도구: Photoshop이 필요 없어요!
웹사이트나 소셜 미디어에 이미지를 최적화해야 할 때 Photoshop을 열기 귀찮으셨죠? 이제는 간단한 Python 스크립트로 해결할 수 있습니다. Pillow 라이브러리를 사용해 이미지 크기 조정, 회전, 필터 적용 등 다양한 작업을 수행할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
from PIL import Image, ImageFilter, ImageOps, ImageEnhance
# 이미지 로드 im = Image.open("Image1.jpg")
# 이미지 작업 예제 im = im.crop((34, 23, 100, 100)) # 자르기 im = im.resize((50, 50)) # 크기 조정 im = im.transpose(Image.FLIP_LEFT_RIGHT) # 좌우 반전 im = im.rotate(360) # 회전 im.save("Image1.jpg", optimize=True, quality=90) # 압축 저장
# 필터 및 효과 적용 im = im.filter(ImageFilter.BLUR) # 블러 효과 im = im.filter(ImageFilter.SHARPEN) # 선명도 효과 im = ImageOps.grayscale(im) # 흑백 변환 im = ImageOps.invert(im) # 색상 반전 im.save("Image1_optimized.jpg")
2. 비디오 최적화: 전문가급 비디오 만들기
요즘 시대에서 비디오 편집은 단지 유튜버만의 영역이 아닙니다. MoviePy를 통해 자르기, 속도 조절, 효과 추가 등 기본적인 기능뿐만 아니라 멋진 효과까지 손쉽게 추가할 수 있습니다.
# 비디오 속도 증가 final_vid = final_vid.speedx(2) # 2배 속도
# 오디오 추가 aud = pyedit.AudioFileClip("bg.mp3") # 오디오 파일 로드 final_vid = final_vid.set_audio(aud) # 비디오에 오디오 설정
# 비디오 뒤집기 (역재생) final_vid = final_vid.fx(pyedit.vfx.time_mirror)
# 두 비디오 병합 vid1 = pyedit.VideoFileClip("vid1.mp4") vid2 = pyedit.VideoFileClip("vid2.mp4") final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 비디오에 시각 효과(VFX) 추가 vid1 = final_vid.fx(pyedit.vfx.mirror_x) # 좌우 반전 효과 vid2 = final_vid.fx(pyedit.vfx.invert_colors) # 색상 반전 효과 final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 비디오에 이미지 추가 img1 = pyedit.ImageClip("img1.jpg") # 이미지 1 img2 = pyedit.ImageClip("img2.jpg") # 이미지 2 final_vid = pyedit.concatenate_videoclips([img1, img2]) # 이미지와 비디오 합치기
# 최종 비디오 저장 final_vid.write_videofile("final.mp4")
3. 이메일 스케줄러: 이메일 잊지 마세요!
smtplib과 schedule을 사용하여 이메일을 자동으로 예약하고 발송할 수 있습니다.
defpdf_to_images(pdf_file): doc = fitz.open(pdf_file) for page in doc: pix = page.get_pixmap() output = f"page{page.number}.png" pix.writePNG(output)
pdf_to_images("test.pdf")
6. API 데이터 가져오기
urllib3를 사용하여 API 데이터를 자동으로 가져오며, 날씨 정보, 주가, GitHub 저장소 정보 등 어떤 데이터든 처리할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import urllib3
# GET 요청으로 API 데이터 가져오기 url = "https://api.github.com/users/psf/repos"# GitHub 저장소 API URL http = urllib3.PoolManager() # HTTP 연결 풀 생성 response = http.request('GET', url) # GET 요청 전송 print("Status Code:", response.status) # 상태 코드 출력 print("Response Data:", response.data) # 응답 데이터 출력
# POST 요청으로 API 데이터 전송 url = "https://httpbin.org/post"# POST 테스트 API URL http = urllib3.PoolManager() # HTTP 연결 풀 생성 response = http.request('POST', url, fields={'hello': 'world'}) # POST 요청 전송 print("Status Code:", response.status) # 상태 코드 출력
7. 배터리 알림: 배터리 상태를 항상 주시하세요
plyer와 psutil을 사용해 배터리 상태를 모니터링하고 충전이 필요할 때 알림을 보냅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
from plyer import notification import psutil from time import sleep
whileTrue: battery = psutil.sensors_battery() life = battery.percent
if life < 50: notification.notify( title="Battery Low", message="Please connect to a power source", timeout=10 ) sleep(50)
8. 웹 스크래핑
BeautifulSoup와 requests를 사용해 웹사이트에서 데이터를 자동으로 추출합니다.
defbackup_and_sync(source_folder, backup_folder): for root, _, files in os.walk(source_folder): for file in files: source_path = os.path.join(root, file) backup_path = os.path.join(backup_folder, root.replace(source_folder, ""), file)
# 백업 폴더에 디렉토리가 없으면 생성 os.makedirs(os.path.dirname(backup_path), exist_ok=True)
# 백업 폴더로 파일 복사 shutil.copy2(source_path, backup_path)
# 백업 폴더에 남아있는 불필요한 파일 삭제 for root, _, files in os.walk(backup_folder): for file in files: backup_path = os.path.join(root, file) source_path = os.path.join(source_folder, root.replace(backup_folder, ""), file)