0Pricing
Python Academy · Ders

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.
  • returncode içeren bir CompletedProcess döndürür.
  • check=True başarısızlıkta hata oluşturur; timeout yavaş komutları durdurur.
  • shell=True yerine 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

  1. subprocess ile Komut Çalıştırma
  2. Çıktıyı Yakalama
  3. Ortam ve os Modülü
  4. Dosya İşlemleri için shutil
← Python Academy Sayfasına Dön