subprocess ile Komut Çalıştırma
Harici programları çalıştırın
subprocess ile Komut Çalıştırma, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Alt Süreç Nedir?
subprocess modülü, Python programınızın tıpkı bir terminalde yazdığınız gibi harici komutları ve diğer programları çalıştırmasını sağlar.
import subprocess
result = subprocess.run(['echo', 'hello'])
print('return code:', result.returncode)subprocess.run Temelleri
subprocess.run() önerilen giriş noktasıdır. Komutu bir bağımsız değişkenler listesi olarak geçirirsiniz: önce program adı, ardından her bağımsız değişken ayrı bir öğe olarak gelir.
import subprocess
result = subprocess.run(['echo', 'one', 'two'])
print('done with code', result.returncode)Neden Dize Değil de Liste?
Liste geçirmek, kabuğun komutunuzu ayrıştırmasını önler; bu da tırnak işareti hatalarını ve kabuk enjeksiyonu risklerini engeller. Her öğe bir bağımsız değişkendir.
import subprocess
# Safe: each piece is its own argument
subprocess.run(['echo', 'a file with spaces.txt'])CompletedProcess Nesnesi
run(), args, returncode ve (yakalanmışsa) çıktıyı içeren bir CompletedProcess döndürür. 0 kodu başarı anlamına gelir.
import subprocess
cp = subprocess.run(['true'])
print('args:', cp.args)
print('returncode:', cp.returncode)Dönüş Kodlarını Denetleme
Sıfır olmayan bir dönüş kodu genellikle komutun başarısız olduğu anlamına gelir. Bu kodu çağrıdan sonra elle inceleyebilirsiniz.
import subprocess
cp = subprocess.run(['ls', '/no/such/path'])
if cp.returncode != 0:
print('command failed with', cp.returncode)check=True ile Başarısızlıkta Hata Oluşturma
Komut sıfır olmayan bir kodla çıktığında run() işlevinin otomatik olarak CalledProcessError oluşturmasını sağlamak için check=True geçirin.
import subprocess
try:
subprocess.run(['false'], check=True)
except subprocess.CalledProcessError as e:
print('failed with code', e.returncode)Bağımsız Değişkenleri Geçirme
Ek komut bağımsız değişkenleri yalnızca listeye eklenen öğelerdir. Burada bir dizinin içeriğini uzun biçimde listeliyoruz.
import subprocess
subprocess.run(['echo', '-n', 'no newline'])
print()
print('above echo had -n flag')Zaman Aşımı Ayarlama
Çok uzun süren bir komutu durdurmak için timeout kullanın. Bu işlem TimeoutExpired oluşturur.
import subprocess
try:
subprocess.run(['sleep', '5'], timeout=0.1)
except subprocess.TimeoutExpired:
print('command took too long, aborted')Çalışma Dizini
cwd bağımsız değişkeni, kendi programınızın çalışma dizinini değiştirmeden komutu belirli bir dizinde çalıştırır.
import subprocess
subprocess.run(['pwd'], cwd='/tmp')shell=True Seçeneği
shell=True ile kabuğun yorumladığı tek bir komut dizesi geçirirsiniz. Bu, yönlendirmeleri ve joker karakterleri etkinleştirir; ancak güvenilmeyen girdilerle kullanıldığında risklidir. Liste biçimini tercih edin.
import subprocess
subprocess.run('echo hello && echo world', shell=True)os.system Kullanımından Kaçınma
Eski os.system yalnızca bir çıkış kodu döndürür ve güvenli bağımsız değişken geçirme veya çıktı yakalama olanağı sunmaz. Yeni kodların tümünde onun yerini subprocess.run alır.
import subprocess
# Modern, safe approach
cp = subprocess.run(['echo', 'modern way'])
print('exit code:', cp.returncode)Kısa Kontrol
Komut çalıştırma hakkındaki anlayışınızı sınayın.
Özet
subprocess ile komut çalıştırmayı öğrendiniz:
subprocess.run([...]), harici bir programı güvenli biçimde çalıştırır.returncodeiçeren birCompletedProcessdöndürür.check=Truebaşarısızlıkta hata oluşturur;timeoutyavaş komutları durdurur.shell=Trueyerine liste biçimini tercih edin.
Sırada: komutun çıktısını yakalama.
Sıkça Sorulan Sorular
“subprocess ile Komut Çalıştırma” dersi ücretsiz mi?
Evet — “subprocess ile Komut Çalıştırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“subprocess ile Komut Çalıştırma” dersinde ne öğreneceğim?
Harici programları çalıştırın Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“subprocess ile Komut Çalıştırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- subprocess ile Komut Çalıştırma
- Çıktıyı Yakalama
- Ortam ve os Modülü
- Dosya İşlemleri için shutil