Với subprocess.call
hoặc subprocess.Popen
, việc thực hiện lệnh shell sẽ làm cho cửa sổ shell xuất hiện nhanh chóng và biến mất.Chạy các lệnh shell không có cửa sổ shell
Làm cách nào tôi có thể chạy lệnh trình bao mà không có cửa sổ trình bao?
Với subprocess.call
hoặc subprocess.Popen
, việc thực hiện lệnh shell sẽ làm cho cửa sổ shell xuất hiện nhanh chóng và biến mất.Chạy các lệnh shell không có cửa sổ shell
Làm cách nào tôi có thể chạy lệnh trình bao mà không có cửa sổ trình bao?
Tôi tưởng tượng sự quan sát của bạn bị giới hạn trong Windows, vì tôi tin rằng đó là nền tảng duy nhất mà bạn sẽ gặp phải vấn đề "flash điều khiển" đó. Nếu vậy, thì docs cung cấp đoạn bán hữu ích sau đây:
Các startupinfo và creationflags, nếu nhất định, sẽ được chuyển đến các tiềm ẩn CreateProcess() chức năng. Họ có thể chỉ định những thứ như hình thức của cửa sổ chính và ưu tiên cho quy trình mới. (Windows chỉ)
Thật không may, tài liệu trực tuyến Python không sao chép phần tài liệu Windows API có liên quan, vì vậy bạn phải xác định vị trí những nơi khác, ví dụ: bắt đầu here trên MSDN dẫn bạn here cho creationflags
, và đặc biệt để
CREATE_NO_WINDOW
0x08000000
Quá trình này là một giao diện điều khiển ứng dụng rằng đang được chạy mà không có một cửa sổ giao diện điều khiển. Do đó, giao diện điều khiển xử lý cho ứng dụng không được đặt.
Vì vậy, thêm creationflags=0x08000000
để Popen
cuộc gọi của bạn sẽ giúp (tiếc là tôi không có máy tính Windows chạy trên đó để thử này ra, vì vậy bạn sẽ phải thử nó cho mình).
cảm ơn câu trả lời nhanh! –
Được xác minh trên máy tính Windows. Cảm ơn bạn! –
Rất đẹp, công trình này! – ChristopheD
Nền tảng nào? (Âm thanh như Windows.) –
liên quan: [Làm cách nào để ẩn bảng điều khiển khi tôi sử dụng os.system() hoặc subprocess.call()?] (Http://stackoverflow.com/q/7006238/4279) – jfs