Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan modul subproses untuk melaksanakan arahan luaran dalam Python 3.x

Cara menggunakan modul subproses untuk melaksanakan arahan luaran dalam Python 3.x

WBOY
WBOYasal
2023-07-30 17:01:231080semak imbas

Cara menggunakan modul subproses untuk melaksanakan perintah luaran dalam Python 3.x

Dalam Python, kita selalunya perlu melaksanakan perintah sistem, seperti menjalankan atur cara lain, melaksanakan perintah shell, dsb. Python menyediakan modul subproses, yang membolehkan kami memanggil arahan luaran dengan mudah dan mendapatkan outputnya.

Artikel ini akan memperkenalkan cara menggunakan modul subproses dalam Python 3.x untuk melaksanakan arahan luaran dan menyediakan beberapa kod sampel.

  1. Laksanakan perintah luaran melalui fungsi subprocess.run()
    Fungsi subprocess.run() ialah fungsi baharu dalam Python 3.5 dan versi yang lebih baru. Ia digunakan untuk menjalankan perintah luaran yang ditentukan.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi subprocess.run() untuk melaksanakan arahan luaran dan mendapatkan output arahan:

import subprocess

# 执行外部命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)

# 获取命令的输出
output = result.stdout

# 输出到控制台
print(output) 

Dalam kod di atas, kami menggunakan fungsi subprocess.run() untuk melaksanakan perintah ls -l. Di sini kita menggunakan dua parameter untuk mengawal pelaksanaan arahan: capture_output=True bermaksud menangkap output arahan ke dalam objek hasil, dan text=True bermaksud mengembalikan output dalam bentuk teks. ls -l命令。这里我们使用了两个参数来控制命令的执行:capture_output=True 表示将命令的输出捕获到result对象中,text=True 表示将输出以文本形式返回。

  1. 通过subprocess.Popen()函数执行外部命令
    subprocess模块还提供了Popen类,它是一个更底层的接口,可以用来执行更复杂的命令,并对命令的输入/输出进行更精细的控制。

下面是一个示例,演示如何使用subprocess.Popen()函数执行外部命令,并对命令的输出进行逐行读取:

import subprocess

# 执行外部命令
process = subprocess.Popen(['ping', 'www.baidu.com'], stdout=subprocess.PIPE, text=True)

# 逐行读取输出
for line in process.stdout:
    print(line.strip())

在上面的代码中,我们使用subprocess.Popen()函数执行了ping www.baidu.com命令,并将命令的输出通过stdout管道返回。我们通过遍历stdout管道逐行读取命令的输出,并打印到控制台。

需要注意的是,当使用Popen类执行命令时,并不会自动等待命令执行完毕。如果需要等待命令执行完毕,可以通过process.wait()函数来实现。

  1. 通过subprocess.call()函数执行外部命令
    subprocess模块还提供了call函数,用于执行外部命令,并等待其执行完毕。

下面是一个示例,演示如何使用subprocess.call()函数执行外部命令,并获取命令的返回码:

import subprocess

# 执行外部命令
return_code = subprocess.call(['git', 'clone', 'https://github.com/username/repo'])

# 输出返回码
print(return_code)

在上面的代码中,我们使用subprocess.call()函数执行了git clone

    Laksanakan arahan luaran melalui subproses.Fungsi Popen()

    Modul subproses juga menyediakan kelas Popen, iaitu antara muka peringkat rendah yang boleh digunakan untuk melaksanakan perintah yang lebih kompleks dan mengawal arahan Input/output untuk kawalan yang lebih halus.


    Berikut ialah contoh yang menunjukkan cara menggunakan subproses.Popen() fungsi untuk melaksanakan arahan luaran dan membaca output baris arahan demi baris:

    rrreee

    Dalam kod di atas, kami menggunakan subproses.Popen( ) fungsi untuk melaksanakan Perintah ping www.baidu.com dilaksanakan, dan output arahan dikembalikan melalui paip stdout. Kami membaca output baris arahan demi baris dengan melintasi paip stdout dan mencetaknya ke konsol.

    🎜Perlu diingatkan bahawa apabila menggunakan kelas Popen untuk melaksanakan arahan, ia tidak akan menunggu secara automatik untuk arahan itu dilaksanakan. Jika anda perlu menunggu arahan untuk dilaksanakan, anda boleh menggunakan fungsi process.wait() untuk mencapai ini. 🎜
      🎜Laksanakan arahan luaran melalui fungsi subprocess.call()🎜Modul subproses juga menyediakan fungsi panggilan, yang digunakan untuk melaksanakan perintah luaran dan menunggu pelaksanaannya selesai. 🎜🎜🎜Berikut ialah contoh yang menunjukkan cara menggunakan fungsi subprocess.call() untuk melaksanakan arahan luaran dan mendapatkan kod pulangan arahan: 🎜rrreee🎜Dalam kod di atas, kami melaksanakan menggunakan subproses .call() function git clone arahan dan lulus alamat gudang sebagai parameter. Selepas melaksanakan arahan dengan memanggil fungsi subprocess.call(), atur cara akan disekat sehingga arahan itu dilaksanakan. 🎜🎜Di sini anda boleh mendapatkan kod pulangan arahan melalui return_code, dan anda boleh menilai sama ada arahan itu berjaya dilaksanakan berdasarkan kod pulangan. 🎜🎜Ringkasan: 🎜Melalui modul subproses, kita boleh melaksanakan perintah luaran dengan mudah dalam Python dan mendapatkan output dan kod pulangan arahan itu. Artikel ini memperkenalkan tiga kaedah yang biasa digunakan: subprocess.run(), subprocess.Popen() dan subprocess.call(). Mengikut keperluan yang berbeza, pilih kaedah yang sesuai untuk melaksanakan arahan luaran. 🎜🎜Saya harap artikel ini akan membantu anda memahami cara menggunakan modul subproses untuk melaksanakan arahan luaran dalam Python 3.x. 🎜

Atas ialah kandungan terperinci Cara menggunakan modul subproses untuk melaksanakan arahan luaran dalam Python 3.x. 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