Masalah:
Tangkap output arahan shell dan mengembalikannya sebagai rentetan, tidak kira sama ada mesej ralat atau kejayaan.
Python 3.5 dan Lebih Tinggi (Moden):
import subprocess def run_command(cmd): result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True) return result.stdout.decode('utf-8') print(run_command('mysqladmin create test -uroot -pmysqladmin12')) # Example Output: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Python 2.7 - 3.4 (Legasi):
import subprocess def run_command(cmd): output = subprocess.check_output(cmd, shell=True) return output print(run_command('mysqladmin create test -uroot -pmysqladmin12')) # Example Output: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Objek Pope (Aplikasi Kompleks dan Python 2.6 dan Di bawah):
import subprocess def run_command(cmd): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) output, error = p.communicate() return output print(run_command('mysqladmin create test -uroot -pmysqladmin12')) # Example Output: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap dan Mengembalikan Output Perintah Shell sebagai Rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!