Hướng dẫn python os system close cmd - Hệ điều hành python đóng cmd

Tôi có mã Python sau:

os.system["C:/Python27/python.exe C:/GUI/TestGUI.py"]
sys.exit[0]

Nó chạy lệnh tốt, và một cửa sổ bật lên. Tuy nhiên, nó không thoát khỏi tập lệnh đầu tiên. Nó chỉ ở đó, và cuối cùng tôi phải buộc phải giết quá trình. Không có lỗi được sản xuất. Chuyện gì đang xảy ra?

Hỏi ngày 24 tháng 7 năm 2011 lúc 13:41Jul 24, 2011 at 13:41

3

Thay vì os.system sử dụng

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
0

Điều này chạy một lệnh và không chờ đợi nó và sau đó thoát ra:

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]

Lưu ý rằng

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
1 như:

p = subprocess.Popen[command]
p.wait[]

Đã trả lời ngày 24 tháng 7 năm 2011 lúc 13:52Jul 24, 2011 at 13:52

Dan D.Dan D.Dan D.

71.7K14 Huy hiệu vàng98 Huy hiệu bạc119 Huy hiệu đồng14 gold badges98 silver badges119 bronze badges

1

Bàn phím và tín hiệu chỉ được nhìn thấy bởi quy trình [tức là luồng chính]. Nếu lệnh lồng nhau của bạn bị treo do một số loại tệp đọc hoặc ghi, bạn sẽ không thể thoát khỏi chương trình bằng bất kỳ lệnh bàn phím nào.

Tại sao chỉ đọc một khối đường ống có tên?

Nếu bạn không thể loại bỏ nguồn gốc của khối đĩa, thì một cách là bọc quy trình trong luồng để bạn có thể buộc giết nó. Nhưng nếu bạn làm điều này, bạn để lại cơ hội cho các tệp được viết một nửa và bị hỏng trên đĩa.

Đã trả lời ngày 21 tháng 7 năm 2015 lúc 1:22Jul 21, 2015 at 1:22

Eric Leschinskieric LeschinskiEric Leschinski

Phù vàng 140K92 Huy hiệu vàng406 Huy hiệu bạc330 Huy hiệu đồng92 gold badges406 silver badges330 bronze badges

Tôi đề nghị sử dụng

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
2 thay vì
import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
3, vì sys.exit không thoát khỏi một chương trình nhưng tăng cấp ngoại lệ hoặc thoát khỏi một luồng.
import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
4 Thoát toàn bộ chương trình

Đã trả lời ngày 2 tháng 4 năm 2013 lúc 9:10Apr 2, 2013 at 9:10

import sys ,subprocess

subprocess.Popen[["C:/Python27/python.exe", "C:/GUI/TestGUI.py"]]
sys.exit[0]

Popen từ mô -đun phụ mà bạn đang tìm kiếm.

Đã trả lời ngày 24 tháng 7 năm 2011 lúc 13:50Jul 24, 2011 at 13:50

Utdemirutdemirutdemir

25.9k10 Huy hiệu vàng61 Huy hiệu bạc81 Huy hiệu đồng10 gold badges61 silver badges81 bronze badges

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về lệnh hệ thống Python. Trước đây chúng tôi đã tìm hiểu về số ngẫu nhiên Python.

Lệnh hệ thống Python

Trong khi tạo một chương trình trong Python, bạn có thể cần phải vượt qua một số lệnh shell cho chương trình của mình. Ví dụ: nếu bạn sử dụng IDE

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
5, bạn có thể nhận thấy rằng có tùy chọn để chia sẻ dự án của bạn trên GitHub. Và bạn có thể biết rằng việc chuyển tệp được thực hiện bởi Git, được vận hành bằng dòng lệnh. Vì vậy, Pycharm thực hiện một số lệnh shell trong nền để làm điều đó. Tuy nhiên, trong hướng dẫn này, chúng tôi sẽ tìm hiểu một số điều cơ bản về việc thực thi các lệnh shell từ mã Python của bạn.git, which is operated using command line. So, Pycharm executes some shell commands in background to do it. However, In this tutorial we will learn some basics about executing shell commands from your python code.

Chức năng python os.system []

Chúng ta có thể thực thi lệnh hệ thống bằng cách sử dụng hàm os.system []. Theo tài liệu chính thức, người ta đã nói rằng

Điều này được thực hiện bằng cách gọi hệ thống hàm C tiêu chuẩn [] và có cùng giới hạn.

Tuy nhiên, nếu lệnh tạo ra bất kỳ đầu ra nào, nó được gửi đến luồng đầu ra tiêu chuẩn phiên dịch. Sử dụng lệnh này không được khuyến khích. Trong mã sau, chúng tôi sẽ cố gắng biết phiên bản GIT bằng lệnh hệ thống

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
6.

import os

cmd = "git --version"

returned_value = os.system[cmd]  # returns the exit code in unix
print['returned value:', returned_value]

Đầu ra sau đây được tìm thấy trong Ubuntu 16.04 khi Git được cài đặt.

git version 2.14.2
returned value: 0

Lưu ý rằng chúng tôi không in đầu ra lệnh phiên bản Git thành bảng điều khiển, nó được in vì bảng điều khiển là luồng đầu ra tiêu chuẩn ở đây.

Chức năng của Python SubProcess.call []

Trong phần trước, chúng tôi đã thấy rằng chức năng

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
7 hoạt động tốt. Nhưng nó không nên cách thực thi các lệnh shell. Chúng tôi sẽ sử dụng mô -đun phụ Python để thực thi các lệnh hệ thống. Chúng ta có thể chạy các lệnh shell bằng cách sử dụng hàm
import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
8. Xem mã sau tương đương với mã trước đó.

import subprocess

cmd = "git --version"

returned_value = subprocess.call[cmd, shell=True]  # returns the exit code in unix
print['returned value:', returned_value]

Và đầu ra cũng sẽ giống nhau.

Chức năng của Python SubProcess.check_output []

Cho đến nay, chúng tôi đã thực hiện các lệnh hệ thống với sự trợ giúp của Python. Nhưng chúng tôi không thể điều khiển đầu ra được tạo ra bởi các lệnh đó. Sử dụng chức năng

import subprocess
import sys

subprocess.Popen[["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"]]
sys.exit[0]
9, chúng ta có thể lưu trữ đầu ra trong một biến.

import subprocess

cmd = "date"

# returns output as byte string
returned_output = subprocess.check_output[cmd]

# using decode[] function to convert byte string to string
print['Current date is:', returned_output.decode["utf-8"]]

Nó sẽ tạo ra đầu ra như sau

Current date is: Thu Oct  5 16:31:41 IST 2017

Vì vậy, trong các phần trên, chúng tôi đã thảo luận về các ý tưởng cơ bản về việc thực hiện lệnh hệ thống Python. Nhưng không có giới hạn trong học tập. Nếu bạn muốn, bạn có thể tìm hiểu thêm về lệnh hệ thống Python bằng mô -đun phụ từ tài liệu chính thức.

Làm cách nào để đóng Python từ CMD?

Lời nhắc lệnh nhắc nhở mặc định của Python là >>>. Python hiển thị một con trỏ ở bên phải của các lệnh nhắc >>> và các lệnh Python nên được nhập vào đó. Để thoát vỏ và quay lại dấu nhắc hệ thống, gõ thoát [] hoặc ctrl-d.type exit[] or Ctrl-D.

Làm thế nào để bạn thoát một hệ điều hành trong Python?

Phương thức OS._ExIT [] trong Python được sử dụng để thoát khỏi quá trình với trạng thái được chỉ định mà không gọi trình xử lý dọn dẹp, bộ đệm FLUSHING STDIO, v.v. Lưu ý: Phương pháp này thường được sử dụng trong quy trình con sau OS.fork [] cuộc gọi hệ thống.os. _exit[] method in Python is used to exit the process with specified status without calling cleanup handlers, flushing stdio buffers, etc. Note: This method is normally used in the child process after os. fork[] system call.

Lệnh hệ điều hành trong Python là gì?

HĐH, thuộc các mô -đun tiện ích tiêu chuẩn của Python.Mô -đun này cung cấp một cách di động để sử dụng chức năng phụ thuộc hệ điều hành.hệ điều hành.Phương thức System [] thực thi lệnh [một chuỗi] trong một vỏ bọc.Phương thức này được thực hiện bằng cách gọi hệ thống hàm C tiêu chuẩn [] và có cùng giới hạn.execute the command [a string] in a subshell. This method is implemented by calling the Standard C function system[], and has the same limitations.

Làm cách nào để đóng một tệp exe trong Python?

Để tiêu diệt chương trình theo tên tệp: Nếu bạn đang làm việc trên Windows, bạn phải chấm dứt quy trình thực thi bằng cách sử dụng hàm chấm dứt.Cách tốt nhất để làm điều đó là bằng cách mở trình quản lý tác vụ.Xác định vị trí quy trình python.exe tương ứng với tập lệnh Python của bạn và nhấp vào "quá trình kết thúc".terminate the executing process using the TerminateProcess function. The best way to do it is by opening the Task Manager. Locate the python.exe process that corresponds to your Python script, and click the "End Process".

Bài Viết Liên Quan

Chủ Đề