Tôi đang làm việc trên một kịch bản lệnh Python GUI đơn giản để thực hiện một số tác vụ đơn giản trên một hệ thống. Một số công việc đó liên quan đến apt-get install
để cài đặt một số gói.Đầu ra phân tích cú pháp cài đặt apt-get cho thanh tiến trình
Trong khi điều này đang diễn ra, tôi muốn hiển thị thanh tiến trình cần cập nhật với tiến trình tải xuống, sử dụng phần trăm nhỏ được hiển thị trong giao diện apt-get trong thiết bị đầu cuối.
NHƯNG! Tôi không thể tìm cách để có được thông tin tiến độ. Đường ống hoặc chuyển hướng đầu ra của apt-get chỉ cung cấp các dòng tĩnh hiển thị thông báo "đã tải xuống hoàn tất" cho mỗi gói và giống nhau để đọc qua subprocess.Popen()
trong tập lệnh của tôi.
Làm cách nào để đọc từ đầu ra của apt-get để nhận được tỷ lệ phần trăm của tệp được tải xuống?
Bất kỳ cơ hội nào có thể hoạt động trong cổng C của tôi cũng như sử dụng posix popen()? Hoặc là có một phương pháp tương tự? –
'popen' sẽ cho phép tiến trình con biết đầu ra của nó là một đường ống, vì vậy bạn có thể không may mắn ngoại trừ các lệnh đủ tốt để cho phép bạn yêu cầu" hoàn toàn không tạo ra được thời gian thực bất cứ lúc nào! " và tôi không nghĩ apt-get nằm trong nhóm ưu tú đó. Để triển khai "thiết bị đầu cuối giả" trong C dưới Linux, hãy bắt đầu với trang người dùng pty (7), ví dụ: tại http://linux.die.net/man/7/pty - và, chúc may mắn (rất nhiều công việc sẽ là cần thiết!). –