Python đợi dòng trước kết thúc
Là một ngôn ngữ kịch bản, Python là một lựa chọn tốt cho tự động hóa. Bạn có thể viết mã Python đơn giản để xâu chuỗi và tự động hóa việc thực thi các chương trình khác nhau. Và khi công việc kết thúc, bạn có thể viết một số tập lệnh Python để trích xuất và phân tích kết quả. Một số chương trình, chẳng hạn như Scrapy, hiện có API mà Python có thể gọi trực tiếp, điều đó có nghĩa là bạn có thể chạy trực tiếp các chương trình này bằng mã Python gốc. Tuy nhiên, nhiều người vẫn chưa có API thích hợp cho Python và bạn vẫn cần chạy trực tiếp các lệnh shell Tôi nghĩ rằng hầu hết các nhà phát triển Python đã sử dụng Thứ nhất, bạn chỉ có thể lấy mã thoát của lệnh shell và không thể lấy đầu ra tiêu chuẩn hoặc lỗi từ Thứ hai, Và bạn có thể thấy kết quả của lệnh Giả sử một người dùng độc ác nhập một số lệnh như thế này Có thể bạn quan tâmVà bạn sẽ thấy một điều thú vị, nhưng cũng khá nguy hiểm Với hàm Đây là một vấn đề bảo mật nghiêm trọng nếu nội dung của Do đó, để thực hành tốt nhất, hãy tránh sử dụng Sử dụng Tôi nghĩ bạn đã nhận ra sự nguy hiểm của hàm Khi bạn đọc một số hướng dẫn hoặc bài đăng cũ, bạn sẽ thấy nhiều chức năng từ mô-đun quy trình con được sử dụng, bao gồm
Hầu hết thời gian, chúng ta chỉ cần sử dụng hàm Chúng tôi sẽ giới thiệu lớp Hàm Chúng ta có thể thấy nó có cùng một kết quả và do đó, cùng một vấn đề như Mặt khác, nếu cờ Lưu ý rằng số 3 cũng phải được chuyển vào dưới dạng chuỗi, nếu không sẽ xảy ra ngoại lệ. Thông báo lỗi sẽ là Thật thú vị, lần này chức năng Do đó, với cờ Nhận đầu ra tiêu chuẩn và lỗi Bên cạnh việc khắc phục sự cố chèn shell, hàm Không giống như Điều quan trọng là, với các tùy chọn Sử dụng Như chúng ta đã nhận thấy, hàm Các điểm chính cho đoạn mã trên
Có nhiều cài đặt hơn cho Trong bài đăng này, chúng tôi đã giới thiệu các cách khác nhau để thực thi lệnh shell trong Python. Theo nguyên tắc chung, chúng ta nên tránh sử dụng Python có đợi một quy trình con kết thúc không?Hầu hết tương tác của bạn với mô-đun quy trình con Python sẽ thông qua hàm run(). Chức năng chặn này sẽ bắt đầu một quy trình và đợi cho đến khi quy trình mới thoát ra trước khi tiếp tục . Tài liệu khuyến nghị sử dụng run() cho tất cả các trường hợp mà nó có thể xử lý.
Cuộc gọi quy trình con có chờ hoàn thành không?Mô-đun quy trình con cung cấp một chức năng có tên gọi. Hàm này cho phép bạn gọi một chương trình khác, đợi lệnh hoàn thành rồi trả về mã trả về. |