Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menjalankan Perintah Shell dan Menangkap Outputnya dalam Python?

Bagaimanakah Saya Boleh Menjalankan Perintah Shell dan Menangkap Outputnya dalam Python?

Linda Hamilton
Lepaskan: 2024-12-25 20:11:23
asal
465 orang telah melayarinya

How Can I Run Shell Commands and Capture Their Output in Python?

Menjalankan Perintah Shell dan Menangkap Output

Tugas melaksanakan perintah shell secara pemprograman dan menangkap outputnya sebagai rentetan boleh dicapai dengan bantuan modul subproses Python.

Fungsi check_output (Python 2.7 dan Di atas)

Untuk pendekatan paling mudah dalam versi Python yang diselenggara secara rasmi, gunakan fungsi check_output:

import subprocess

output = subprocess.check_output(['ls', '-l'])
print(output) # Output: b'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
Salin selepas log masuk

run Function (Python 3.5 dan Lebih Tinggi)

Dalam Python 3.5 , fungsi run menyediakan lebih fleksibel dan moden pendekatan:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8')) # Output: 'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
Salin selepas log masuk

Popen Constructor (Semua Versi)

Untuk keserasian lanjutan dan kefungsian lanjutan, gunakan pembina Popen peringkat rendah. Dengan berkomunikasi, anda boleh menangkap output dan menghantar input:

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
output, _ = p.communicate()
print(output) # Output: b'.\n..\nfoo\n'
Salin selepas log masuk

Nota

Pelaksanaan Perintah Shell (shell=Argumen Benar)

Secara lalai , fungsi melaksanakan program tunggal. Untuk melaksanakan perintah shell kompleks, tetapkan shell=True. Walau bagaimanapun, ini menimbulkan kebimbangan keselamatan.

Pengendalian Input

Untuk menghantar input melalui stdin, nyatakan argumen kata kunci input dalam run atau Popen.

Pengendalian Ralat

Untuk pengendalian ralat yang betul, gunakan check_output dengan stdout=subprocess.STDOUT atau Popen dengan stderr=subprocess.STDOUT. Sebagai alternatif, semak kod pengembalian subproses.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Perintah Shell dan Menangkap Outputnya dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan