7 놀랍게도 유용한 유용한 파이썬 스크립트 매주 사용합니다


저자의 이미지 | 표의 문자
틀 소개
파이썬 데이터 과학, 앱 구축 또는 게임 제작을위한 것이 아닙니다. 나는 남동생 인 Qasim, Python을 가르치고 있었고, 매주 우리가 종종 다루는 지루하고 반복적 인 작업을 자동화 할 수있는 실용적인 대본을 보여 주었을 때 그가 더 많이 연결되어 있다는 것을 깨달았습니다. 내가 인생에서 관찰 한 한 가지는 작고 비생산적이며 시간이 많이 걸리는 작업이 많은 에너지를 심각하게 배출 할 수 있다는 것입니다. 당신은 실제로 중요한 것들에 대한 동기 부여 나 집중력이 거의 없습니다. 그래서 저는 거의 매주 마주 치는 가장 일반적인 작업 중 일부와 파이썬으로 쉽게 자동화 할 수있는 방법으로 여러분을 도와 드리며 많은 시간과 에너지를 절약 할 수 있습니다.
나는 스크립트를 깨끗하고 간단하게 유지했지만 요구 사항에 따라 스크립트를 복잡하게 추가 할 수 있습니다. 그래서 시작합시다.
틀 1. 확장자 별 자동 파일 구성 자
솔직히 말해서 때로는 작업 할 때 다운로드 폴더가 절대적인 혼란이됩니다. 나는 대상 디렉토리의 파일을 통해 루프를 제공하는 간단한 파이썬 스크립트를 공유하고 확장하여 확장하여 (예 : 이미지, 문서, 비디오)를 정렬합니다. OS 그리고 Shutil. 보자 :
import os
import shutil
from pathlib import Path
# Folder to organize (e.g., Downloads)
base_folder = Path.home() / "Downloads"
# Define folders for each extension
folders = {
"images": ["jpg", "png", "gif", "bmp"],
"documents": ["txt", "pdf", "docx"],
"archives": ["zip", "rar", "tar", "gz"],
"audio": ["mp3", "wav"],
# add more categories as needed
}
# Iterate over files in base_folder
for item in base_folder.iterdir():
if item.is_file():
ext = item.suffix.lower().lstrip('.')
moved = False
# Determine which category folder to use
for folder, ext_list in folders.items():
if ext in ext_list:
dest_dir = base_folder / folder
dest_dir.mkdir(exist_ok=True)
item.rename(dest_dir / item.name)
moved = True
break
# If extension didn’t match any category, move to "others"
if not moved:
dest_dir = base_folder / "others"
dest_dir.mkdir(exist_ok=True)
item.rename(dest_dir / item.name)
틀 2. 경고가있는 시스템 리소스 모니터
여러 탭, 앱 및 스크립트를 함께 실행하는 나와 같은 사람이라면 시스템 성능을 추적하기가 쉽습니다. 이 스크립트를 사용합니다 psutil 라이브러리, CPU 및 RAM 사용을 모니터링하는 데 도움이됩니다. 사용법이 특정 임계 값을 가로 지르는 경우 알림을 설정할 수도 있습니다.
import psutil
import time
CPU_LIMIT = 80 # in percentage
MEMORY_LIMIT = 80 # in percentage
while True:
cpu = psutil.cpu_percent(interval=1)
memory = psutil.virtual_memory().percent
print(f"CPU: {cpu}%, Memory: {memory}%")
if cpu > CPU_LIMIT:
print("⚠️ CPU usage is high!")
if memory > MEMORY_LIMIT:
print("⚠️ Memory usage is high!")
time.sleep(5)
잠시 동안 실행하면 비디오를 편집하거나 무거운 스크립트를 실행할 때 물건이 어떻게 급증하는지 알기 시작합니다.
틀 3. 자동 이메일 기자
이메일은 우리가 생각하는 것보다 더 많은 시간을 먹습니다. 업데이트에 대한 답변, 알림 보내기, 후속 조치 또는 사람들을 루프에 유지하는 경우, 우리는 종종 매주 몇 시간을 자동화 할 수있는 일을하는 데 소요됩니다. 그리고 당신이 나와 같은 사람이라면, 당신은 아마도 정기적 인 업데이트 이메일에 무엇을 쓸지 지나치게 생각하고, 미루고 나중에 서두르십시오. 이 간단한 스크립트는 정말 유용 할 수 있으며 다음을 설정하는 방법은 다음과 같습니다.
import smtplib
from email.mime.text import MIMEText
sender = "[email protected]"
receiver = "[email protected]"
subject = "Daily Report"
body = "This is your automated email for today."
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver
# For security, use environment variables or getpass instead of hardcoding.
password = "your_password"
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login("[email protected]", password)
server.send_message(msg)
print("Email sent!")
⚠️ 헤드 업 : Gmail을 사용하는 경우 2FA 활성화가있는 경우 덜 안전한 앱 액세스를 활성화하거나 앱 특정 비밀번호를 설정하십시오.
틀 4. 데스크탑 알림
실제로이 스크립트를 사용하여 Pomodoro 기술 (25 분의 깊은 초점과 5 분의 휴식 시간). 그리고 솔직히, 그것은 하루 종일 집중력과 에너지 수준에 놀라운 일을했습니다. 앱을 전환하거나 알람을 설정하지 않고 화면에 약간의 알림을 팝업하는 것을 원한다면 좋습니다. 스트레치 미리 알림, 수화 경보, 또는 심지어 종결을 중단하도록 상기시키는 데 사용할 수 있습니다.
나는 MacOS를 사용하고 있기 때문에 내장을 사용하고 있습니다 osaScript 기본 시스템 알림을 트리거하는 명령. 그러나 Windows 또는 Linux에 있다면 사용할 수 있습니다. 플리어 유사한 기능을위한 라이브러리.
내 자신의 워크 플로를 위해 설정하는 방법은 다음과 같습니다.
import time
import os
def notify(title, message):
os.system(f'''
osascript -e 'display notification "{message}" with title "{title}"'
''')
# Pomodoro session settings
work_duration = 25 * 60 # 25 minutes
break_duration = 5 * 60 # 5 minutes
cycles = 4 # Number of Pomodoro sessions
for i in range(cycles):
# Work phase
notify(f"Pomodoro {i + 1} - Focus Time", "Time to focus! Work for 25 minutes.")
time.sleep(work_duration)
# Break phase
notify("Break Time", "Nice work! Take a 5-minute break.")
time.sleep(break_duration)
# Final notification
notify("All Done!", "You’ve completed all your Pomodoros 🎉")
틀 5. 비밀번호 생성기 및 관리자
여전히 모든 곳에서 동일한 비밀번호를 사용하고 있다면 (제발하지 마십시오), 이것은 당신을위한 것입니다. 안전한 비밀번호를 생성하고 안전하게 저장합니다 (나중에 스토리지 부품을 암호화 할 수도 있음).
import random
import string
def generate_password(length=12):
chars = string.ascii_letters + string.digits + string.punctuation
password = "".join(random.choice(chars) for _ in range(length))
return password
new_password = generate_password()
print("Generated Password:", new_password)
# Save to file (simple way)
with open("passwords.txt", "a") as file:
file.write(f"MySite: {new_password}\n")
더 많은 보안을 원하시면 파일을 암호화하십시오 암호화 또는 안전한 금고에 보관하십시오 키링.
틀 6. 여러 파일에서 텍스트를 검색하십시오
자료를 작성할 때는 보통 다양한 폴더의 다양한 파일에 수많은 원시 아이디어가 흩어져 있습니다. 때때로 나는 몇 주 전에 화려한 비유 나 코드 스 니펫을 쓰는 것을 기억하지만 … 내가 어디서 그것을 저장했는지 전혀 모른다. 이 작은 대본은 수많은 시간을 절약했습니다. “머신 러닝”또는“벡터 검색”과 같은 문구를 검색하기 위해 모든 파일을 수동으로 열어서이 파이썬 스크립트를 실행하고 모든 것을 스캔하도록합니다.
import os
search_dir = "your_directory" # Replace with the path to your notes
search_term = "machine learning"
for root, dirs, files in os.walk(search_dir):
for file in files:
if file.endswith(".txt") or file.endswith(".md"):
file_path = os.path.join(root, file)
try:
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
if search_term.lower() in content.lower():
print(f"✅ Found in: {file_path}")
except Exception as e:
print(f"❌ Skipped {file_path} (error reading file)")
이것은 일반 텍스트 파일에 적합한 간단한 버전입니다. 나도 함께 일하기 때문에 .docx
,,, .pptx
그리고 .pdf
파일, 나는 해당 형식을 지원하는 약간 더 고급 버전을 사용합니다. 라이브러리와 같은 라이브러리를 사용 하여이 스크립트를 쉽게 확장 할 수 있습니다 Python-docx,,, Python-pptx그리고 pdfplumber 전체 작업 공간을위한 미니 검색 엔진으로 만듭니다.
틀 7. 트위터에서 인턴쉽과 장학금 찾기
트위터/X는 현명하게 사용하는 방법을 알고 있다면 골드 민이 될 수 있습니다. 석사 및 박사 학위를 적극적으로 검색 할 때, 나는 당신이 자격을 갖추어야 할 필요가 없다는 것을 깨달았지만, 또한 당신은 또한 신속하고 알고 있어야한다는 것을 깨달았습니다. 트위터에 많은 큰 기회가 나타납니다 (예, 심각하게). 그러나 당신이 면밀히보고 있지 않으면 빨리 사라집니다. 파이썬에서는이 작업을 수행하는 두 가지 좋은 방법이 있습니다. snscrape 도서관 또는 트위터의 공식 API. 더 많은 컨트롤을 원한다면 (언어로 필터링, 리트 윗을 제외한 등) Twitter의 공식 API V2를 사용할 수 있습니다. 무료 버전의 경우에도 최근 트윗에 대한 액세스가 제한됩니다. 이 스크립트의 경우 사용하겠습니다 요청 API와 상호 작용하는 라이브러리 팬더 결과를 구성합니다.
개발자 계정과 Bearer 토큰 (Twitter/X 개발자 포털에서)이 필요합니다.
import requests
import pandas as pd
BEARER_TOKEN = 'YOUR_TWITTER_BEARER_TOKEN' # Replace this with your token
headers = {
"Authorization": f"Bearer {BEARER_TOKEN}"
}
search_url = "
# Keywords that usually show up in academic opportunities
query = (
'(phd OR "phd position" OR "master position" OR "fully funded") '
'("apply now" OR "open position" OR "graduate position") '
'-is:retweet lang:en'
)
params = {
'query': query,
'max_results': 10, # Max is 100 for recent search
'tweet.fields': 'author_id,created_at,text',
'expansions': 'author_id',
'user.fields': 'username,name',
}
def get_tweets():
response = requests.get(search_url, headers=headers, params=params)
if response.status_code != 200:
raise Exception(f"Request failed: {response.status_code}, {response.text}")
return response.json()
def extract_tweet_info(data):
users = {u['id']: u for u in data.get('includes', {}).get('users', [])}
tweets_info = []
for tweet in data.get('data', []):
user = users.get(tweet['author_id'], {})
tweet_url = f"https://twitter.com/{user.get('username')}/status/{tweet['id']}"
tweets_info.append({
'Date': tweet['created_at'],
'Username': user.get('username'),
'Name': user.get('name'),
'Text': tweet['text'],
'Tweet_URL': tweet_url
})
return pd.DataFrame(tweets_info)
if __name__ == "__main__":
data = get_tweets()
df = extract_tweet_info(data)
print(df[['Date', 'Username', 'Text', 'Tweet_URL']].head())
df.to_csv('phd_masters_positions_twitter.csv', index=False)
이번 주에 실행하여 결과를 CSV에 저장하거나 자신에게 이메일을 보내도록 할 수 있습니다.
틀 마무리
솔직히, 나는 자동화를 위해 Python을 사용하기 시작하지 않았지만 시간이 지남에 따라 조용히 먹는 작고 반복적 인 것들에 얼마나 많은 시간이 걸리는지 깨달았습니다. 이 스크립트는 기본적으로 보일 수 있지만 시간과 헤드 스페이스를 자유롭게하는 데 도움이됩니다.
모든 것을 자동화 할 필요는 없습니다. 가장 자주 수행하는 한두 가지 작업을 선택하고 거기에서 구축하십시오. 간단한 자동화로 시작하면 인생을 좀 더 쉽게 만들 수있는 더 많은 방법을 찾기 시작한다는 것을 알았습니다. 그것이 실제로 클릭하기 시작하는 곳입니다.
이들 중 하나를 사용하거나 자신의 버전을 구축하면 알려주십시오. 나는 당신이 무엇을 생각 나게하는지보고 싶습니다.
Kanwal Mehreen 기계 학습 엔지니어이자 데이터 과학에 대한 열정과 AI의 의학 교차점을 가진 기술 작가입니다. 그녀는 eBook “Chatgpt의 생산성을 극대화하는 것”을 공동 저술했습니다. APAC의 Google Generation Scholar 2022로서 그녀는 다양성과 학업 우수성을 챔피언시킵니다. 그녀는 또한 Tech Scholar, Mitacs Globalink Research Scholar 및 Harvard Wecode Scholar의 Teradata 다양성으로 인정 받고 있습니다. Kanwal은 STEM 분야의 여성에게 힘을 실어주기 위해 펨코드를 설립 한 변화에 대한 열렬한 옹호자입니다.
Post Comment