-
Notifications
You must be signed in to change notification settings - Fork 1
/
process_intro.py
44 lines (33 loc) · 1.8 KB
/
process_intro.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#python içerisinden program çalıştırmak istersem prosses yaratırım
#bunun için "subprocess modülü" kullanılır
#subprocess içinde wrapper fonk yardımıyla çalıştırabilirim
#######notepad.exe dosyasını python kodum içinden çalıştırabiliyorum
import subprocess
result = subprocess.run(['notepad.exe', 'sample.py'])
print('ok')
###bir process bittikten sonra çıktısını alıp kullanmak istersem capture output=True yazmalıyım
import subprocess
#shell=True dersem shell komutlarımı yazabileceğimi belirtiyorum
result = subprocess.run("dir", shell=True, capture_output=True,encoding='utf-8') #cmd açıkmış gibi işlem yap dir fonk çıktısını bize ver
print('ok')
print(result.stdout)
#bir test python programımı başka bir python dosyasından çalışmak istersem
import subprocess
result = subprocess.run(['python', 'test.py'], capture_output=True, encoding='utf-8')
print(result.stdout)
#######popen kullanımı#####
#Not defterimi çalıştırdım
import subprocess
result = subprocess.Popen('notepad.exe')
print('ok')
#komut satırından çalıştırdığım fonk çıktısını bir değişkene atmak istersem
import subprocess
result = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE, encoding='UTF-8') #çıktıyı alıp atama yapmak istersem kullanıyorum
text = result.stdout.read() #dir fonksiyonumun çıktısını text değişkenime atadım
print(text)
##Not:Subprocess.run ile subproces.popen arasındaki fark::ilkinde ilk programın bitmesi beklenirken popen da bu durum söz konusu değil
##bir exeyi çalıştırıp communicate ile işlem yapmak communicate ile input verdim
import subprocess
result = subprocess.Popen('test.exe', encoding='utf-8', stdin=subprocess.PIPE, stdout=subprocess.PIPE)
stdout, stderr = result.communicate('10 20 30 0')
print(stdout)