Menjalankan Perintah Bash dalam Python
Isu
Skrip Python gagal menjalankan perintah Bash menggunakan os.system(). Mesej ralat menunjukkan bahawa modul Python tidak ditemui.
Jawapan
Untuk menyelesaikan isu ini dan meningkatkan pemahaman menjalankan perintah Bash dalam Python, pertimbangkan aspek berikut:
-
Lebih Suka Modul Subproses: Gunakan subprocess.run() atau kaedah yang berkaitan seperti subprocess.check_call() untuk pengendalian dan kawalan ralat yang lebih baik. Elakkan menggunakan os.system().
-
Gunakan text=True: Set text=True untuk menyahkod output dan ralat standard ke dalam rentetan Unicode.
-
Fahami shell=True vs shell=False:
- shell=True menghantar rentetan ke shell untuk pelaksanaan.
- shell=False menyediakan senarai argumen kepada sistem pengendalian, memintas shell .
Secara umum, elakkan mencampurkan pilihan ini dengan menghantar senarai rentetan dengan shell=True atau rentetan tunggal dengan shell=False.
-
Pertimbangkan Perbezaan Antara sh dan Bash:
- Subproses menggunakan /bin/sh oleh lalai melainkan anda menentukan executable='/bin/bash', yang diperlukan untuk Bash sahaja sintaks.
-
Elakkan Menukar Persekitaran Induk:
- Proses anak tidak boleh mengubah persekitaran ibu bapa, termasuk menetapkan pembolehubah atau menukar direktori kerja. Gunakan os.environ[] atau hantar pembolehubah persekitaran kepada proses anak dengan env=.
-
Elakkan Menjalankan Python daripada Python:
- Pertimbangkan untuk mengimport modul Python yang lain dan memanggil fungsinya secara langsung dan bukannya menjalankan skrip sebagai subproses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Menjalankan Perintah Bash dari Dalam Skrip Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!