Cara menjalankan perintah atau program eksternal di Python
- 1001
- 290
- Dwayne Hackett
Python subproses
Modul memungkinkan untuk menelurkan proses baru, dan menjalankan perintah atau skrip eksternal dari skrip Python. Anda dapat menginstal versi python terbaru menggunakan tutorial ini. Juga, ada sejumlah IDE yang tersedia untuk Python. Seperti menginstal Pycharm Python IDE di sistem Ubuntu.
Python Scrpt untuk memanggil perintah sistem
Mari Buat Program Pertama Anda Untuk Mendaftar Semua File Tersedia di Direktori Saat Ini. Anda dapat menambahkan sejumlah parameter baris perintah dengan comm (,) terpisah.
#!/usr/bin/python3 Subproses Subproses Impor.Panggil (["ls", "-l"])1234 | #!/usr/bin/python3 impor subprosessubprocess.Panggil (["ls", "-l"]) |
Di mana-
- Pernyataan impor digunakan untuk memuat modul subproses dari pustaka standar python
- Panggilan adalah fungsi dari modul subproses, digunakan untuk menjalankan perintah eksternal
Cetak python tanpa baris baru
Perintah Python diakhiri dengan output baris baru "\ n", yang dapat Anda timpa menggunakan end = "" berarti bahwa output perintah berikutnya akan berada di baris yang sama. Lihat contoh di bawah ini.
#!/usr/bin/python3 impor subproses cetak ("\ ntoday is",) Subproses.hubungi (["tanggal", "+%d"])123456 | #!/usr/bin/python3 impor subproses cetak ("\ ntoday is", end = "") Subprocess.hubungi (["tanggal", "+%d"]) |
Hasil:
Hari ini adalah 01/11/18
Contoh Python dengan ekspansi shell
Subproses default.panggilan tidak memperluas wildcard shell atau melakukan substitusi perintah. Ini dapat ditimpa dengan memberikan nilai sebenarnya untuk argumen shell. Ingatlah bahwa penggunaan shell = true bisa menjadi masalah keamanan untuk sistem Anda dengan melaksanakan perintah berbahaya.
#!/usr/bin/python3 Impor subproses # Executing Command tanpa Subproses Ekspansi Shell.hubungi (['echo', 'welcome $ user']) # mengeksekusi perintah dengan subproses ekspansi shell dengan shell.Call ('Echo Welcome $ User', shell = true)123456789 | #!/USR/bin/python3 Impor Subprocess # Command Eksekusi Tanpa Shell ExpansionsubProcess.hubungi (['echo', 'welcome $ user']) # mengeksekusi perintah dengan shell expansionsubprocess.Call ('Echo Welcome $ User', shell = true) |
Hasil:
Selamat Datang $ User Welcome Root
Anda dapat melihat dalam output di atas bahwa perintah pertama mencetak nama variabel karena dieksekusi tanpa ekspansi shell. Perintah kedua dieksekusi dengan ekspansi shell dapatkan nilai variabel lingkungan pengguna. Anda juga dapat melihat bahwa seluruh perintah sekarang dilewatkan sebagai string dan bukan sebagai daftar string.
Contoh ular python bermanfaat lainnya
Anda dapat membuat skrip Anda lebih mudah dibaca dan indah dengan menyimpan perintah panjang dalam variabel dan kemudian menjalankannya.
#!/usr/bin/python3 impor subproses cmd = "grep -re 'fatal'/var/log/> pencarian.txt "subproses.Panggilan (cmd, shell = true)123456 | #!/usr/bin/python3 impor subproses cmd = "grep -re 'fatal'/var/log/> pencarian.txt "subproses.Panggilan (cmd, shell = true) |
Anda juga dapat menyimpan output dari perintah apa pun ke variabel menggunakan subproses.getOutput. Ini juga akan menyimpan jika ada pesan kesalahan yang dihasilkan.
#!/usr/bin/python3 impor subproses cetak ("output perintah 'pwd' adalah:", flush = true) output = subproses.getOutput ('pwd') cetak (output)12345678 | #!/usr/bin/python3 impor subproses cetak ("output perintah 'pwd' adalah:", flush = true) output = subproses.getOutput ('pwd') cetak (output) |
Hasil:
Output dari perintah 'pwd' adalah:/root/python/skrip