Điều bạn thực sự thích là Dịch vụ Mac OS. Chúng là quy trình làm việc của Automator, có thể tích hợp độc đáo vào hệ điều hành theo cách thức theo ngữ cảnh cụ thể: ví dụ: bạn có thể làm cho tập lệnh của mình xuất hiện trong menu ngữ cảnh của Finder khi bạn chọn một thư mục.
Bạn có thể làm cho một dịch vụ từ kịch bản python theo cách sau:
- mở Automator.app và tạo ra một dịch vụ mới;
- Trên đầu trang của khối công việc bạn chọn loại đầu vào ứng dụng của bạn mong đợi (thư mục là sự lựa chọn của bạn nếu tôi hiểu chính xác);
- Kéo khối "Chạy Shell Script" từ ngăn bên trái vào luồng công việc;
Bây giờ bạn có thể sử dụng vỏ bash mặc định (/bin/bash
) để gọi script của bạn:
/full/path/to/your/python /full/path/to/your/script.py [email protected]
Hoặc sử dụng /usr/bin/python
(mặc định python) và dán mã của bạn trực tiếp vào khối văn bản;
- Đừng quên đặt ở góc trên bên phải của khối.
Đó là một chút khó khăn để gỡ lỗi quy trình công việc như vậy (vì bạn sẽ không thấy stdout & stderr).Giải pháp khắc phục có thể có để gỡ lỗi là thiết lập tùy chỉnh excepthook
và xuất tất cả các ngoại lệ thành một số tệp văn bản thuần túy:
import sys, traceback
def excepthook(type, exc, tb):
with open("error.log", "a") as f:
traceback.print_exc(file=f)
sys.excepthook = excepthook
Nguồn
2011-11-18 17:33:57
Cảm ơn rất nhiều, đây chính xác là những gì tôi cần. – John1538