Đầu ra quy trình con chụp Python
Tất cả các ví dụ sử dụng Python 3. 5 trở lên (trừ khi được ghi chú) và cho rằng bạn đang chạy Linux hoặc hệ điều hành dựa trên unix Show
Tất cả các ví dụ có thể được tìm thấy trên sổ ghi chép Jupyter này gọi () ví dụ
Khi bạn truyền một loạt các lệnh và tham số 2 trả về mã trả về của quy trình được gọi
call() ví dụ với shell=True
Nếu 4, chuỗi lệnh được hiểu là lệnh shell thôViệc sử dụng 4 có thể khiến bạn bị chèn mã nếu bạn sử dụng đầu vào của người dùng để tạo chuỗi lệnh
ví dụ call(), chụp thiết bị xuất chuẩn và thiết bị xuất chuẩn
ví dụ call(), bắt buộc ngoại lệ nếu quá trình gây ra lỗiSử dụng 7
Chạy lệnh và chụp đầu ra
Chạy chuỗi thô dưới dạng dòng lệnh Shell
Điều này tương tự như ví dụ trên, với 4
chạy () ví dụ. chạy lệnh và nhận mã trả về 1 hầu như hoạt động giống như 1 và bạn nên sử dụng nó thay vì call() cho phiên bản 3. 5 trở đi
chạy () ví dụ. chạy lệnh, buộc ngoại lệ nếu lỗi quy trìnhSử dụng 2 để buộc phương thức Python đưa ra một ngoại lệ nếu quy trình cơ bản gặp lỗi 0chạy () ví dụ. sử dụng shell=TrueNhư trong ví dụ call(), 4, chuỗi lệnh được hiểu là lệnh shell thôMột lần nữa, việc sử dụng 4 có thể khiến bạn bị chèn mã nếu bạn sử dụng đầu vào của người dùng để tạo chuỗi lệnh 1chạy () ví dụ. lưu trữ đầu ra và thông báo lỗi trong chuỗiNếu quy trình cơ bản trả về mã thoát khác không, bạn sẽ không nhận được ngoại lệ;
ví dụ về giáo hoàng. chạy lệnh và nhận mã trả vềđược sử dụng cho các ví dụ phức tạp hơn khi bạn cần. Nhìn thấy
5ví dụ về giáo hoàng. Lưu trữ đầu ra và thông báo lỗi trong chuỗi 6ví dụ về giáo hoàng. Chuyển hướng đầu ra sang tập tin 7ví dụ về giáo hoàng. Chuyển hướng đầu ra và lỗi vào cùng một tệp 8ví dụ về giáo hoàng. Chạy lệnh trong nềnTheo mặc định, các cuộc gọi đến ____9_______7 sinh ra một quy trình con trong nền và không đợi nó kết thúc (trừ khi bạn sử dụng ____________8 trên đối tượng Popen) Nối các lệnh lại với nhauSử dụng 9 9Đợi lệnh kết thúc, không đồng bộSử dụng và chờ đợi Phương thức 0 hoạt động tương tự như phương pháp 7 nhưng việc gọi 8 và 3 trên các đối tượng được trả về không chặn bộ xử lý, vì vậy trình thông dịch Python có thể được sử dụng trong những việc khác trong khi quy trình con bên ngoài không trả về
Làm cách nào để bắt đầu ra của quy trình con Python?Có hai cách để làm như vậy. . chuyển capture_output=True sang quy trình con. chạy() quy trình con. check_output() nếu bạn chỉ muốn thiết bị xuất chuẩn Làm cách nào để nắm bắt đầu ra trong cuộc gọi quy trình con?Nếu bạn muốn nắm bắt đầu ra của lệnh, bạn nên sử dụng quy trình con. check_output() . Nó chạy lệnh với các đối số và trả về đầu ra của nó dưới dạng chuỗi byte. Bạn có thể giải mã chuỗi byte thành chuỗi bằng hàm decode().
Đầu ra của quy trình con gọi Python là gì?Hàm call() quy trình con của Python trả về mã đã thực thi của chương trình . Nếu không có đầu ra chương trình, hàm sẽ trả về đoạn mã mà nó đã thực hiện thành công. Nó cũng có thể gây ra ngoại lệ CalledProcessError.
Sự khác biệt giữa Check_output và Popen là gì?Sự khác biệt chính là, trong khi popen là một chức năng không chặn (có nghĩa là bạn có thể tiếp tục thực hiện chương trình mà không cần đợi lệnh gọi kết thúc), cả lệnh gọi và check_output . Sự khác biệt khác là ở những gì họ trả lại. popen trả về một đối tượng Popen. gọi trả về thuộc tính returncode. . The other difference is in what they return: popen returns a Popen object . call returns the returncode attribute. |