Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh menangkap output arahan shell sebagai rentetan dalam Python?

Bagaimanakah saya boleh menangkap output arahan shell sebagai rentetan dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-23 06:36:34613semak imbas

How can I capture shell command output as a string in Python?

Menangkap Output Perintah 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!

Kenyataan:
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