Python automation script: subprocess, pathlib và argparse
Viết script Python gọn, đúng cách: gọi lệnh shell an toàn, xử lý file, parse argument và đóng gói để chạy cron.
PythonAutomationsubprocessargparse
subprocess.run thay vì os.system
`os.system` trả về exit code nhưng không capture output. `subprocess.run` kiểm soát được stdout, stderr, timeout và raise exception khi lệnh lỗi bằng `check=True`.
Dùng list argument thay vì string để tránh shell injection: `subprocess.run(["ls", "-la", path], check=True)` thay vì `subprocess.run(f"ls -la {path}", shell=True)`.
- subprocess.run với check=True
- capture_output=True khi cần output
- timeout để tránh hang vô tận
- Không dùng shell=True với input từ người dùng
Bước tiếp theo
Nếu áp dụng vào dự án thật, hãy bắt đầu bằng phiên bản nhỏ nhất có thể đo được, ghi lại quyết định kỹ thuật, rồi cải tiến dựa trên log và phản hồi người dùng.