mengharapkan adalah modul Python yang populer untuk melakukan berbagai jenis tugas otomatis. Berbagai jenis aplikasi interaktif seperti telnet, ssh, ftp, dll., dapat diotomatisasi menggunakan modul ini. Ini adalah modul Python murni, dan tidak memerlukan kompiler C atau TCL atau Harapkan ekstensi seperti yang diharapkan modul lainnya. Ini dapat bekerja dengan mudah hanya dengan menggunakan juru bahasa Python. Modul ini dapat digunakan dengan dua cara. Salah satu caranya adalah dengan menggunakan Lari() fungsi, dan cara lain adalah dengan menggunakan muncul kelas. Itu Lari() fungsinya mudah digunakan daripada kelas spawn dan melakukan tugas otomatis dengan cepat. Perintah atau program tertentu dapat dijalankan oleh Lari() fungsi yang mengembalikan output. Fungsi ini dapat digunakan sebagai alternatif untuk os.sistem() fungsi. Itu muncul kelas lebih kuat dari Lari() fungsi yang dapat menelurkan program anak, berinteraksi dengannya dengan mengirimkan input, dan menunggu respons. Modul ini diinstal di python3 secara default. Dua cara menggunakan modul ini telah ditunjukkan dalam tutorial ini.
Menggunakan fungsi run()
Sintaksis:
Sintaks dari Lari() fungsi diberikan di bawah ini. Ini memiliki banyak argumen untuk berbagai tujuan. Tetapi 3 atau 4 argumen pertama paling banyak digunakan. Argumen pertama dari fungsi ini adalah wajib yang mengambil perintah yang akan dijalankan oleh fungsi ini. Itu dapat mengembalikan banyak output. jika dengan status keluar argumen digunakan dengan Salah nilai, itu hanya akan mengembalikan output perintah.
run(command, timeout=30, withexitstatus=False, events=None, extra_args=None, logfile=None, cwd=None, env=None, **kwargs)Contoh-1: Penggunaan fungsi run() yang berbeda
Tiga kegunaan yang berbeda dari Lari() fungsi telah ditampilkan dalam skrip berikut:. 'pwd' output perintah dieksekusi pada yang pertama Lari() fungsi yang akan menampilkan jalur direktori kerja saat ini. Selanjutnya, Lari() fungsi digunakan untuk menentukan detail file tertentu, dan nama file akan diambil dari pengguna. Ketiga Lari() fungsi digunakan untuk membuat ssh koneksi dan ambil semua file dan folder dari jaring map.
# Impor modul ekspektasiharapan impor
impor os
# Jalankan perintah sederhana
print("Direktori kerja saat ini: \n%s" %pexpect.jalankan('pwd').dekode("utf-8"))
# Ambil informasi dari file tertentu
filename = input("Masukkan nama file yang ada : ")
# Periksa file ada atau tidak
jika os.jalan.ada (nama file):
keluaran = harapan.run("ls -l "+nama file, dengan status keluar=0)
print("Informasi dari file tertentu: \n%s" %output.dekode("utf-8"))
lain:
print("File tidak ada.")
# Ambil file dan folder dari direktori tertentu menggunakan perintah ssh
keluaran = harapan.run("ssh [dilindungi email] 'ls web/'", events='(?i)kata sandi':'12345\n')
print("\nKeluaran dari perintah ssh: \n%s" %output.dekode("utf-8"))
Keluaran
Output berikut akan muncul setelah menjalankan skrip di atas:. Dalam keluaran, dok1.py telah diberikan sebagai nama file, dan detail file ini telah ditampilkan. Selanjutnya, daftar semua file dari jaring folder telah ditampilkan menggunakan ssh koneksi.
Menggunakan kelas spawn
Sintaks kelas spawn diberikan di bawah ini. Konstruktor kelas ini dapat mengambil banyak argumen untuk berbagai tujuan. Argumen pertama adalah wajib yang akan mengambil perintah untuk dieksekusi.
class spawn __init __ (self, command, args=[], timeout=30, maxread=2000, search window size=none, logfile=none, cwd=none, env=none)Contoh-2: Penggunaan sederhana dari kelas spawn
Penggunaan sederhana dari kelas spawn telah ditunjukkan dalam skrip berikut:. 'tanggal' perintah telah dieksekusi di sini dengan menggunakan kelas spawn. Output dari perintah akan diambil dengan membuat objek kelas spawn, dan output dicetak dalam format yang dapat dibaca manusia dengan menggunakan membaca sandi() metode.
# Impor modul ekspektasiharapan impor
# Jalankan perintah tanggal menggunakan spawn
anak = harapan.menelurkan ('tanggal')
# Baca keluaran anak tanpa menghasilkan EOF
anak.mengharapkan (mengharapkan.EOF)
# Simpan teks yang diharapkan oleh pola string
keluaran = anak.sebelum
# Cetak hasilnya
print("Hari ini adalah :", output.dekode("utf-8"))
Keluaran
Output berikut akan muncul setelah menjalankan skrip di atas:.
Contoh-3: Baca konten direktori menggunakan koneksi ssh
Membuat koneksi ssh dan membaca daftar semua file dan folder dari direktori tertentu telah ditunjukkan dalam skrip berikut:. Di sini, kata sandi pengguna yang ditentukan akan diambil dari pengguna untuk membuat koneksi ssh menggunakan kelas spawn. Jika kata sandi yang diberikan salah, maka skrip akan dihentikan dengan menampilkan pesan kesalahan. Jika kata sandi yang diberikan benar, tetapi terminal tidak ditentukan, maka skrip akan menampilkan pesan sukses untuk koneksi, mengirim jenis terminal, dan menentukan pola yang diharapkan dari prompt perintah. Jika kata sandi benar dan terminal ditentukan, skrip akan menampilkan pesan sukses dan prompt perintah shell.
# Impor modul ekspektasiharapan impor
# Atur nama pengguna untuk koneksi ssh
nama pengguna = '[dilindungi email]'
# Ambil kata sandi yang valid dari pengguna
Password = input("Masukkan password login %s: " %username)
# Jalankan perintah ssh menggunakan spawn
anak = harapan.spawn('ssh' + nama pengguna)
#Tunggu kata sandinya
anak.harapkan('kata sandi:')
# Kirim kata sandi yang diambil dari pengguna
anak.sendline(Kata Sandi)
# Diharapkan tiga keluaran
saya = anak.harapkan (['Izin ditolak', 'Tipe terminal', '[#\$] '])
# saya akan menjadi 0 jika ssh tidak dapat terhubung
jika saya == 0:
print("Izin ditolak oleh tuan rumah. Tidak dapat masuk")
anak.bunuh(0)
# saya akan menjadi 1 jika ssh dapat terhubung tetapi terminal tidak disetel
elif saya == 1:
print('Berhasil Terhubung.\nJenis terminal tidak disetel.')
anak.sendline('vt100')
anak.harapkan('[#\$]')
# saya akan menjadi 2 jika ssh dapat terhubung dan terminal disetel
elif saya == 2:
print('Berhasil Terhubung.')
cepat = anak.setelah
print('Prompt Perintah Shell:', prompt.dekode("utf-8"))
Keluaran
Output berikut akan muncul ketika skrip di atas dijalankan dengan kata sandi yang salah.
Output berikut akan muncul ketika skrip di atas dijalankan dengan kata sandi yang benar.
Kesimpulan
pexpect adalah modul yang sangat membantu bagi pengguna Python yang membantu mereka melakukan tugas rutin mereka secara otomatis. Penggunaan paling dasar dari modul peexpect Python telah dijelaskan dalam tutorial ini dengan menggunakan contoh-contoh mudah untuk membantu pengguna untuk mulai bekerja dengan modul ini.