Python

Cara Menggunakan peexpect dengan Python

Cara Menggunakan peexpect dengan Python

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 ekspektasi
harapan 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 ekspektasi
harapan 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 ekspektasi
harapan 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.

Cara Menggunakan Xdotool untuk Merangsang Klik Mouse dan Keystroke di Linux
Xdotool adalah alat baris perintah sumber terbuka dan gratis untuk mensimulasikan klik mouse dan penekanan tombol. Artikel ini akan membahas panduan s...
5 Produk Mouse Komputer Ergonomis Terbaik untuk Linux
Apakah penggunaan komputer yang lama menyebabkan rasa sakit di pergelangan tangan atau jari Anda?? Apakah Anda menderita persendian yang kaku dan teru...
Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...