Lệnh.getoutput python3

nvr      20714 20711  0 10. 39 ? . 00. 00 /opt/americandynamics/venvr/bin/rtptransmit setup_req db=media  camera=6  stream=video  substream=1  client_address=192. 168. 200. 179  client_rtp_port=6970  override_lockout=1  clienttype=1
getoutput[cmd]Return đầu ra [stdout hoặc stderr] của việc thực thi cmd trong một shell. getstatus[file]Trả về đầu ra của "ls -ld " trong một chuỗi. getstatusoutput[cmd]Return [trạng thái, đầu ra] của việc thực thi cmd trong một trình bao. mk2arg[head, x]# Tạo đối số lệnh từ thư mục và tên đường dẫn [không gian tiền tố, thêm dấu ngoặc kép]. mkarg[x]# Tạo một đối số lệnh shell từ một chuỗi.
# Trả về một chuỗi bắt đầu bằng một dấu cách theo sau là một dấu ngoặc kép
# phiên bản của đối số.
# Hai chiến lược. đặt trong dấu ngoặc đơn nếu nó không chứa dấu ngoặc kép;
# nếu không, hãy đặt trong dấu ngoặc kép và tiền tố ký tự có thể trích dẫn
# với dấu gạch chéo ngược.

Sử dụng Python để thực thi các lệnh Shell trong Linux

Mã trạng thái và đầu ra

Lấy mã trạng thái và đầu ra

1
2
3
4
5
6
7
8
9
>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo

Chỉ đầu ra lệnh

Chỉ nhận được đầu ra Shell

1
2
3
>>> import commands
>>> commands.getoutput['echo foo']
'foo'

Tập lệnh cơ bản

Tệp kiểm tra với một dòng dữ liệu

1
2
$ cat file.txt
test-string

Tập lệnh python rất cơ bản của chúng tôi

1
2
3
4
5
6
7
import commands

status = None
output = None

status, output = commands.getstatusoutput['cat file.txt']
print["Status: {}, Output: {}".format[status, output]]

Chạy kịch bản

1
2
$ python script.py
Status: 0, Output: test-string

Có 3 chức năng trong mô-đun lệnh để làm việc với các lệnh bên ngoài. Các chức năng nhận biết trình bao và trả về đầu ra hoặc mã trạng thái từ lệnh

getstatusoutput[]

Hàm getstatusoutput[] chạy một lệnh thông qua trình bao và trả về mã thoát và đầu ra văn bản [kết hợp thiết bị xuất chuẩn và thiết bị xuất chuẩn]. Các mã thoát giống như đối với hàm C wait[] hoặc os. đợi đã[]. Mã này là một số 16 bit. Byte thấp chứa số tín hiệu đã giết quá trình. Khi tín hiệu bằng 0, byte cao là trạng thái thoát của chương trình. Nếu một tệp lõi được tạo, bit cao của byte thấp được đặt

>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo
0

Ví dụ này chạy hai lệnh thoát bình thường, lệnh thứ ba dùng để tạo kết xuất lõi và lệnh thứ tư tạo khối đang chờ bị hủy từ trình bao khác. [Đừng chỉ sử dụng Ctrl-C vì trình thông dịch sẽ chặn tín hiệu đó. Sử dụng ps và grep trong một cửa sổ khác để tìm quá trình đã đọc và gửi tín hiệu cho nó bằng lệnh kill. ]

>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo
1

Trong ví dụ này, tôi đã sử dụng kill -HUP $PID để hủy quá trình đọc từ một cửa sổ trình bao riêng biệt, vì vậy tín hiệu được báo cáo là 1

đầu ra[]

Nếu mã thoát không hữu ích cho ứng dụng của bạn, bạn có thể sử dụng getoutput[] để chỉ nhận đầu ra văn bản từ lệnh

>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo
2

>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo
3

getstatus[]

Trái ngược với những gì bạn có thể mong đợi, getstatus[] không chạy lệnh và trả về mã trạng thái. Thay vào đó, đối số của nó là một tên tệp được kết hợp với “ls -ld” để tạo một lệnh được chạy bởi getoutput[]. Đầu ra văn bản của lệnh được trả về

>>> import commands
>>> commands.getstatusoutput['echo foo']
[0, 'foo']

>>> status, output = commands.getstatusoutput['echo foo']
>>> print[status]
0
>>> print[output]
foo
4

Như bạn nhận thấy từ đầu ra, ký tự $ trong đối số của lệnh gọi cuối cùng được thoát để tên biến môi trường không được mở rộng

Lệnh Python3 là gì?

Lệnh Python3 được giới thiệu vì lệnh python trỏ đến python2 . Kể từ đó, Python3 đã trở thành mặc định và do đó python trỏ đến python3 trên hầu hết nhưng không phải tất cả các hệ thống. Vì vậy, hầu hết các nhà phát triển sử dụng rõ ràng python2 và python3 để không gặp sự cố trên các hệ thống khác.

Mô-đun lệnh trong python là gì?

Mô-đun lệnh chứa các chức năng tiện ích để làm việc với đầu ra lệnh shell trong Unix . có sẵn trong. 1. 4. Cảnh báo. Mô-đun này đã lỗi thời bởi mô-đun quy trình con.

Sự khác biệt giữa lệnh python và Python3 là gì?

Sự khác biệt cơ bản giữa Python và Python 3 là Python 3 không tương thích với các phiên bản Python cũ hơn . Một thay đổi quan trọng là mã hoạt động trong Python 2. 7 sẽ không hoạt động trong Python 3, chúng cần được viết theo những cách khác nhau.

Chủ Đề