0Pricing
Python Academy · Pelajaran

Menjalankan Perintah dengan subprocess

Jalankan program eksternal

Menjalankan Perintah dengan subprocess adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Apa Itu subprocess?

Modul subprocess memungkinkan program Python Anda menjalankan perintah eksternal dan program lain, seperti saat mengetikkannya di terminal.

import subprocess

result = subprocess.run(['echo', 'hello'])
print('return code:', result.returncode)

Dasar-Dasar subprocess.run

subprocess.run() adalah titik masuk yang disarankan. Anda meneruskan perintah sebagai daftar argumen: nama program terlebih dahulu, kemudian setiap argumen secara terpisah.

import subprocess

result = subprocess.run(['echo', 'one', 'two'])
print('done with code', result.returncode)

Mengapa Daftar, Bukan Teks?

Meneruskan daftar mencegah penerjemah perintah mengurai perintah Anda, sehingga mencegah kesalahan pengutipan dan risiko injeksi perintah. Setiap elemen adalah satu argumen.

import subprocess

# Safe: each piece is its own argument
subprocess.run(['echo', 'a file with spaces.txt'])

Objek CompletedProcess

run() mengembalikan CompletedProcess yang berisi args, returncode, dan keluaran jika ditangkap. Kode 0 berarti berhasil.

import subprocess

cp = subprocess.run(['true'])
print('args:', cp.args)
print('returncode:', cp.returncode)

Memeriksa Kode Keluar

Kode keluar yang bukan nol biasanya berarti perintah gagal. Anda dapat memeriksanya secara manual setelah pemanggilan selesai.

import subprocess

cp = subprocess.run(['ls', '/no/such/path'])
if cp.returncode != 0:
    print('command failed with', cp.returncode)

Memunculkan Kesalahan saat Gagal dengan check=True

Teruskan check=True agar run() secara otomatis memunculkan CalledProcessError ketika perintah berakhir dengan kode bukan nol.

import subprocess

try:
    subprocess.run(['false'], check=True)
except subprocess.CalledProcessError as e:
    print('failed with code', e.returncode)

Meneruskan Argumen

Argumen perintah tambahan cukup ditambahkan sebagai item daftar lainnya. Di sini kita menampilkan isi direktori dalam format panjang.

import subprocess

subprocess.run(['echo', '-n', 'no newline'])
print()
print('above echo had -n flag')

Menetapkan Batas Waktu

Gunakan timeout untuk membatalkan perintah yang berjalan terlalu lama. Tindakan ini memunculkan TimeoutExpired.

import subprocess

try:
    subprocess.run(['sleep', '5'], timeout=0.1)
except subprocess.TimeoutExpired:
    print('command took too long, aborted')

Direktori Kerja

Argumen cwd menjalankan perintah dalam direktori tertentu tanpa mengubah direktori kerja program Anda sendiri.

import subprocess

subprocess.run(['pwd'], cwd='/tmp')

Opsi shell=True

Dengan shell=True, Anda meneruskan satu teks perintah yang ditafsirkan oleh penerjemah perintah. Opsi ini mengaktifkan pipa dan pola pengganti, tetapi berisiko jika digunakan dengan masukan yang tidak tepercaya. Utamakan bentuk daftar.

import subprocess

subprocess.run('echo hello && echo world', shell=True)

Menghindari os.system

os.system lama hanya mengembalikan kode keluar dan tidak menyediakan penerusan argumen yang aman atau penangkapan keluaran. subprocess.run menggantikannya untuk semua kode baru.

import subprocess

# Modern, safe approach
cp = subprocess.run(['echo', 'modern way'])
print('exit code:', cp.returncode)

Pemeriksaan Singkat

Uji pemahaman Anda tentang menjalankan perintah.

Ringkasan

Anda mempelajari cara menjalankan perintah dengan subprocess:

  • subprocess.run([...]) menjalankan program eksternal dengan aman.
  • Fungsi ini mengembalikan CompletedProcess dengan returncode.
  • check=True memunculkan kesalahan saat gagal; timeout membatalkan perintah yang lambat.
  • Utamakan bentuk daftar daripada shell=True.

Berikutnya: menangkap keluaran perintah.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menjalankan Perintah dengan subprocess” gratis?

Ya — teks lengkap “Menjalankan Perintah dengan subprocess” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menjalankan Perintah dengan subprocess”?

Jalankan program eksternal Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Menjalankan Perintah dengan subprocess” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menjalankan Perintah dengan subprocess
  2. Menangkap Output
  3. Lingkungan dan Modul os
  4. shutil untuk Operasi File
← Kembali ke Python Academy