Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh menangkap output arahan shell sebagai rentetan dalam Python?
Masalah: Laksanakan arahan shell dan tangkap outputnya sebagai rentetan, tanpa mengira kejayaan atau kegagalan.
Penyelesaian:
Dalam versi moden Python (3.5 atau lebih tinggi), gunakan fungsi subprocess.run dengan bendera stdout=subprocess.PIPE:
import subprocess result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE) output = result.stdout.decode('utf-8')
Dalam versi lama Python (3-3.4), gunakan fungsi subprocess.check_output:
import subprocess output = subprocess.check_output(['ls', '-l'])
Untuk senario yang lebih kompleks yang melibatkan input kepada arahan atau pengendalian ralat, gunakan subproses.kelas Popen dengan kaedah berkomunikasi:
import subprocess p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = p.communicate()
Atas ialah kandungan terperinci Bagaimanakah saya boleh menangkap output arahan shell sebagai rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!