Tugas melaksanakan perintah shell secara pemprograman dan menangkap outputnya sebagai rentetan boleh dicapai dengan bantuan modul subproses Python.
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'
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'
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'
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!