0
0
Lập trình
Admin Team
Admin Teamtechmely

10 Công Cụ Python Nhỏ Gọn Thần Kỳ Cho Lập Trình Viên

Đăng vào 8 tháng trước

• 7 phút đọc

Giới thiệu

Trong thế giới lập trình, việc tự động hóa các tác vụ thường ngày là một phần quan trọng giúp nâng cao năng suất làm việc. Bài viết này sẽ giới thiệu 10 công cụ Python nhỏ gọn nhưng cực kỳ hữu ích, giúp bạn thực hiện những nhiệm vụ tự động hóa một cách dễ dàng và hiệu quả.

Mục lục

  1. Sao lưu tệp tự động
  2. Pinger trang web tự động
  3. Tự động hóa commit Git
  4. Ghi nhật ký yêu cầu API
  5. Ghép PDF tự động
  6. Dọn dẹp thư mục theo loại tệp
  7. Phân tích CSV
  8. Thay đổi kích thước hình ảnh tự động
  9. Tải video YouTube (chỉ âm thanh)
  10. Ghi nhật ký hàng ngày tự động

1. Sao lưu tệp tự động

python Copy
import shutil, os, datetime

src = input("Nhập đường dẫn tệp/thư mục nguồn: ")
dst = input("Nhập thư mục đích: ")

try:
    if not os.path.exists(dst):
        os.makedirs(dst)
    backup_name = f"{os.path.basename(src)}_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}"
    dst_path = os.path.join(dst, backup_name)
    if os.path.isdir(src):
        shutil.copytree(src, dst_path)
    else:
        shutil.copy2(src, dst_path)
    print(f"[✔] Sao lưu thành công tại {dst_path}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Đảm bảo thư mục đích tồn tại hoặc tạo mới nếu cần.
  • Thực hiện sao lưu thường xuyên để bảo vệ dữ liệu.

Common Pitfalls

  • Không kiểm tra xem đường dẫn nguồn có tồn tại hay không.

Performance Tips

  • Sử dụng shutil.copytree cho thư mục và shutil.copy2 cho tệp để đảm bảo tính toàn vẹn.

Troubleshooting

  • Kiểm tra quyền truy cập thư mục nếu gặp lỗi khi sao lưu.

2. Pinger trang web tự động

python Copy
import os, datetime

host = input("Nhập địa chỉ website hoặc IP: ")
logfile = "ping_log.txt"

try:
    response = os.system(f"ping -c 4 {host}")
    with open(logfile, "a") as f:
        f.write(f"{datetime.datetime.now()} - {host} - {'UP' if response == 0 else 'DOWN'}\n")
    print("[✔] Kết quả đã được ghi vào ping_log.txt")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Ghi lại kết quả ping để theo dõi hiệu suất.

Common Pitfalls

  • Nhập sai địa chỉ website hoặc IP.

Performance Tips

  • Thực hiện ping với khoảng thời gian hợp lý để không bị chặn bởi firewall.

Troubleshooting

  • Kiểm tra kết nối mạng nếu không nhận được phản hồi.

3. Tự động hóa commit Git

python Copy
import os, datetime, subprocess

msg = input("Nhập tin nhắn commit: ")
logfile = "git_log.txt"

try:
    subprocess.run(["git", "add", "."], check=True)
    subprocess.run(["git", "commit", "-m", msg], check=True)
    with open(logfile, "a") as f:
        f.write(f"{datetime.datetime.now()} - Commit: {msg}\n")
    print("[✔] Commit đã được ghi lại")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Sử dụng thông điệp commit rõ ràng và súc tích.

Common Pitfalls

  • Quên thực hiện git add trước khi commit.

Performance Tips

  • Sử dụng commit nhỏ và thường xuyên để dễ dàng theo dõi thay đổi.

Troubleshooting

  • Kiểm tra trạng thái Git nếu gặp lỗi.

4. Ghi nhật ký yêu cầu API

python Copy
import requests, datetime

url = input("Nhập endpoint API: ")
logfile = "api_log.txt"

try:
    r = requests.get(url)
    with open(logfile, "a") as f:
        f.write(f"{datetime.datetime.now()} - {url} - {r.status_code}\n")
    print(f"[✔] Phản hồi: {r.status_code}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Kiểm tra mã trạng thái HTTP để xử lý lỗi.

Common Pitfalls

  • Không xử lý các trường hợp lỗi từ API.

Performance Tips

  • Sử dụng caching để giảm số lượng yêu cầu đến API.

Troubleshooting

  • Kiểm tra kết nối Internet nếu không nhận được phản hồi.

5. Ghép PDF tự động

python Copy
from PyPDF2 import PdfMerger

files = input("Nhập tên các tệp PDF cách nhau bằng dấu cách: ").split()
output = "merged.pdf"

try:
    merger = PdfMerger()
    for f in files:
        merger.append(f)
    merger.write(output)
    merger.close()
    print(f"[✔] Các PDF đã được ghép vào {output}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Kiểm tra xem các tệp PDF có tồn tại trước khi ghép.

Common Pitfalls

  • Nhập sai tên tệp hoặc đường dẫn.

Performance Tips

  • Sử dụng tệp có kích thước nhỏ để giảm thời gian xử lý.

Troubleshooting

  • Đảm bảo rằng thư viện PyPDF2 đã được cài đặt.

6. Dọn dẹp thư mục theo loại tệp

python Copy
import os, shutil

folder = input("Nhập đường dẫn thư mục: ")
ext = input("Nhập phần mở rộng tệp (ví dụ: .txt): ")
target = folder + "_cleaned"

try:
    os.makedirs(target, exist_ok=True)
    for f in os.listdir(folder):
        if f.endswith(ext):
            shutil.move(os.path.join(folder, f), os.path.join(target, f))
    print(f"[✔] Các tệp đã được chuyển đến {target}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Kiểm tra lại các tệp đã được chuyển để tránh mất dữ liệu.

Common Pitfalls

  • Nhập sai đường dẫn thư mục.

Performance Tips

  • Chỉ chuyển các tệp cần thiết để tiết kiệm thời gian.

Troubleshooting

  • Kiểm tra quyền truy cập thư mục nếu không thể di chuyển tệp.

7. Phân tích CSV

python Copy
import pandas as pd

file = input("Nhập đường dẫn tệp CSV: ")

try:
    df = pd.read_csv(file)
    print("[✔] Tóm tắt:")
    print(df.describe())
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Đảm bảo tệp CSV có định dạng hợp lệ trước khi phân tích.

Common Pitfalls

  • Không xử lý các giá trị thiếu trong dữ liệu.

Performance Tips

  • Sử dụng các phương pháp tối ưu hóa để xử lý tệp lớn hơn.

Troubleshooting

  • Kiểm tra lỗi định dạng tệp nếu không thể đọc được.

8. Thay đổi kích thước hình ảnh tự động

python Copy
from PIL import Image
import os

file = input("Nhập đường dẫn hình ảnh: ")
size = int(input("Nhập kích thước mới (px): "))

try:
    img = Image.open(file)
    img.thumbnail((size, size))
    new_file = f"resized_{os.path.basename(file)}"
    img.save(new_file)
    print(f"[✔] Hình ảnh đã được lưu dưới dạng {new_file}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Kiểm tra định dạng hình ảnh trước khi thay đổi kích thước.

Common Pitfalls

  • Nhập sai đường dẫn hình ảnh.

Performance Tips

  • Sử dụng định dạng hình ảnh nén để giảm kích thước tệp.

Troubleshooting

  • Kiểm tra thư viện Pillow đã được cài đặt.

9. Tải video YouTube (chỉ âm thanh)

python Copy
from pytube import YouTube

url = input("Nhập URL YouTube: ")

try:
    yt = YouTube(url)
    stream = yt.streams.filter(only_audio=True).first()
    out_file = stream.download()
    print(f"[✔] Đã tải: {out_file}")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Kiểm tra tính hợp lệ của URL trước khi tải.

Common Pitfalls

  • Không có kết nối Internet.

Performance Tips

  • Tải xuống âm thanh có chất lượng thấp nếu không cần thiết.

Troubleshooting

  • Đảm bảo rằng thư viện pytube đã được cài đặt.

10. Ghi nhật ký hàng ngày tự động

python Copy
import datetime

entry = input("Nhập nội dung nhật ký hôm nay: ")
logfile = "journal.txt"

try:
    with open(logfile, "a") as f:
        f.write(f"{datetime.datetime.now().strftime('%Y-%m-%d')} - {entry}\n")
    print("[✔] Nhật ký đã được cập nhật")
except Exception as e:
    print(f"[✘] Lỗi: {e}")

Best Practices

  • Ghi nhật ký hàng ngày để theo dõi tiến trình và cảm xúc.

Common Pitfalls

  • Quên ghi nhật ký.

Performance Tips

  • Thiết lập nhắc nhở để ghi nhật ký.

Troubleshooting

  • Kiểm tra quyền ghi tệp nếu không thể cập nhật nhật ký.

Kết luận

Những công cụ Python nhỏ gọn này có thể giúp bạn tự động hóa nhiều nhiệm vụ hàng ngày, tiết kiệm thời gian và nâng cao hiệu suất làm việc. Hãy thử áp dụng chúng vào quy trình làm việc của bạn ngay hôm nay để thấy sự khác biệt.

Câu hỏi thường gặp (FAQ)

Tôi có thể sử dụng những công cụ này cho dự án nào?

Bạn có thể sử dụng những công cụ này cho bất kỳ dự án nào cần tự động hóa các tác vụ đơn giản.

Tôi cần cài đặt gì để chạy các công cụ này?

Bạn cần cài đặt Python và các thư viện cần thiết như requests, pandas, PyPDF2, PIL, và pytube.

Có cách nào để cải thiện hiệu suất của các công cụ này không?

Có, bạn có thể tối ưu hóa mã nguồn và sử dụng các kỹ thuật lưu trữ để giảm tải.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào